error_reporting(E_ALL);echo "<pre>";// DISTRIBUTE TEAMS INTO CONTESTS$fixtures = mysqli_query($link, "SELECT teamname FROM tourn_teams WHERE groupname='Group 1'");$teams = array();// THE TEAMSwhile($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 FIRSTforeach ($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 MATCHUPSforeach ($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) {print_r($matchup); $out .= "<td> <input type='text' name='teamtwo' value='{$matchup["away"]}' readonly> </td>"; } $out .= "</tr>"; $out .= PHP_EOL;}所以這是我的代碼。當我嘗試在 // CREATE THE MATRIX OF MATCHUPS 之后運行 sql 查詢時,它可以工作并執行我想要的操作,但它將 2 行相同的行插入數據庫。數據庫我一直在玩,無法找出重復它的內容。我只想要一排而不是兩排相同的行。另外我剛剛注意到,它稍后會生成兩個相同的固定裝置......
1 回答
白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
你的問題是你的最后一個foreach. $matchup是一個類似的數組
Array
(
[home] => All-Stars
[away] => Vets
)
并且您正在迭代其值,因此您為每個匹配項進行兩次插入。你實際上并不需要foreach那里,只需使用
foreach ($contests as $week => $matchup) {
$home = $matchup['home'];
$away = $matchup['away'];
$sql = mysqli_query($link, "INSERT INTO tourn_fixtures(teamone, teamtwo) values ('$home', '$away')");
}
請注意,您還需要引號away作為$matchup.
這是您的代碼演示,顯示為每個查詢生成兩個INSERT查詢$matchup:Demo on 3v4l.org
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報
0/150
提交
取消
