所以,我在这里有代码,但是当我插入它时,它只会插入数组的最后一个值。表格在// //创建文档中的矩阵之后开始。
echo "<pre>";
// DISTRIBUTE TEAMS INTO CONTESTS
$fixtures = mysqli_query($link, "SELECT teamname FROM tourn_teams WHERE groupname='Group 1'");
$teams = array();
// THE TEAMS
while($row = mysqli_fetch_assoc($fixtures))
{
$teams[] = $row['teamname'];
}
// HOW MANY WEEKS
$weeks = 3;
// MAKE ENOUGH ARRAY ELEMENTS FOR THE DISTRIBUTION
$array = array_merge($teams, $teams);
// POPULATE THE MATCHES ARRAY
$matches = array();
while ($weeks)
{
foreach ($teams as $ptr => $team)
{
// FIND THE INDEX INTO THE DISTRIBUTION ARRAY
$linkt = $ptr + $weeks;
// SELECT THE HOME AND AWAY TEAMS
$home = $team;
$away = $array[$linkt];
$matches[$team][$weeks] = array('home' => $home, 'away' => $away);
}
// NEXT WEEK
$weeks--;
}
// SORT THE MATCHES SENSIBLY SO WEEK ONE COMES FIRST
foreach ($matches as $team => $contests)
{
ksort($contests);
$matches[$team] = $contests;
}
// ACTIVATE THIS TO SEE WHAT THE $matches ARRAY LOOKS LIKE
// print_r($matches);
// CREATE THE TABLE OF MATCHUPS
$out = NULL;
$out .= "<table>";
$out .= PHP_EOL;
// CREATE THE HEADERS FOR EACH WEEK
$weeknums = end($matches);
$out .= "<tr>";
$out .= '<th> Team </th>';
$out .= '<th> v </th>';
$out .= "<th> Team </th>";
$out .= '</tr>';
$out .= PHP_EOL;
// CREATE THE MATRIX OF MATCHUPS
foreach ($matches as $team => $contests)
{
$out .= "<form class='form-horizontal' action='".$_SERVER['PHP_SELF']."'d method='post'><tr><td><input type='text' name='teamone' value='$team' readonly></td>";
$out .= "<td> <b>v</b></td>";
foreach ($contests as $week => $matchup)
{
$out .= "<td> <input type='text' name='teamtwo' value='{$matchup["away"]}' readonly> </td>";
}
$out .= "</tr>";
$out .= PHP_EOL;
}
$out .= "<input class='btn btn-primary' type='submit' name='submit'></form></table>";
$out .= PHP_EOL;
$sql = "INSERT INTO tourn_fixtures (teamone, teamtwo) VALUES ('".$_POST['teamone']."', '".$_POST['teamtwo']."')";
if(mysqli_query($link, $sql)){
echo "Records inserted successfully.";
} else{
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
echo "</pre>";
echo $out;
?>
如您所见,表中数组的输出可以正常工作并在表中正确输出并生成固定装置,但是当我随后尝试将其输入数据库时,仅输入数组的最后一个值,而试图将所有灯具插入单独的行中。
我为此编写了一个函数。随时使用和修改它。它是一个类的一部分,该类还处理查询需求。因此,您需要更改$ this-> query($ query);的位置。is。确保在插入阵列之前可以安全插入。切勿插入原始帖子数据。
public function insert_array( $tabel = '', $arr = array() ) {
// make sure its an array
$arr_velden = (array) $arr;
// write array to table
$query = "
INSERT INTO
$tabel (
" . implode(',', array_keys($arr_velden)) . "
)
VALUES (
'" . implode("','", array_values($arr_velden)) . "'
)";
return $this->query($query);
} // end function
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句