그래서 여기에 내 코드가 있지만 삽입하려고 할 때 배열의 마지막 값만 삽입합니다. 양식은 문서에서 // CREATE THE MATRIX OF MATCHUPS 이후에 시작됩니다.
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); 위치를 변경해야합니다. 배열을 삽입하기 전에 삽입해도 안전한지 확인하십시오. 원시 포스트 데이터를 삽입하지 마십시오.
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] 삭제
몇 마디 만하겠습니다