2014-01-11 58 views
0

穿過陣列我做了一個基本的夾具發生器,它也爲每個團隊的分數輸入生成輸入字段。目標是讓這些分數更新排名表。從表格

我快到了,但我堅持一個組成部分。注意:下面的代碼故意不會更新排行榜或暫時發送分數,因爲我只是想先測試輸出以確保其正常工作。

我提交的燈具頁上的分數,一旦我提出,我有一個是通過每一行(EG戰隊1-12,二隊-15)應該循環迴路,並制定出優勝者。現在問題出在哪裏 - 我的循環只返回最後一排得分並計算出勝利者,然後重複(隊2獲勝者)19次(有19排固定裝置)

我不能工作out是我的數據在循環的每次迭代中是否被覆蓋,或者可能(我認爲這更可能),它只考慮最後一行,因爲數據不是以正確的數組格式能夠。遍歷

下面是一些代碼註釋$團隊是從以前的網頁表單輸入數組(用戶鍵入隊名,而這下面的代碼產生夾具名單,與框輸入分數);

$counter=0; 

foreach ($teams as $team) { 


    foreach ($teams as $opposition) { 

    if ($team != $opposition) { 

    $str = <<<EOF 
    <input type="hidden" name="team1" value="$team[1]"> 
    <input type="hidden" name="team2" value="$opposition[1]"> 
    <tr><td>Row $counter<input type="hidden" value="$counter" name="row1"><td><input   type="hidden" name="team_id" class="invis" value="$team[0]"><td><input type="text"  name="team1_score"> $team[1] 
     <td> versus <td> <input type="hidden" value="$opposition[0]"><td> $opposition[1] <td><input type="text" name="team2_score"><td>Row $counter<input type="hidden" value="$counter" name="row2"></tr> 
    <input type="hidden" name="fixtures" value="$counter"> 

EOF; 

     echo $str; 
     $counter++; 

     } 
     } 
} 

echo "<hr><input type=\"submit\" value=\"Go\">"; 
echo "</form>"; 
echo "</table>"; 

,現在我與有問題的代碼,它輸出的最後一行一次得分,然後輸出抽獎/贏/輸報表19倍(燈具數量)...

$team1=$_POST['team1']; 
$team2=$_POST['team2']; 
$row1=$_POST['row1']; 
$row2=$_POST['row2']; 
$fixtures=$_POST['fixtures']; 
$team_id=$_POST['team_id']; 
$team1_score=$_POST['team1_score']; 
$team2_score=$_POST['team2_score']; 
$games=$_POST['games']; 


$games=array('TeamOne: ' =>$team1, 'Goals: '=> $team1_score, 'TeamTwo: ' => $team2, 'Goals2:  '=>$team2_score); 
$row=0; 
while ($row<$fixtures) { 
foreach ($games as $key=>$value) { 
echo "$key $value <br>"; 
} 


if ($team1_score > $team2_score) { 
    echo "$team1 are the winners"; 
    $row++; 
} 
else if ($team2_score > $team1_score) { 
    echo "$team2 are the winners"; 
    $row++; 
} 
else { 
echo "Drawed"; 
$row++; 
} 
} 

因此,這會輸出球隊和比分,然後(取決於比分)重複獲勝者或抽獎選項19次。

任何幫助將不勝感激。

非常感謝

回答

0

你正在寫的19倍相同的屬性名稱相同的形式,所以你只能得到一個元素。嘗試更改數組的輸入,然後您將收到一組可以在PHP中正常迭代的元素。

$counter=0; 

    foreach ($teams as $team) { 


     foreach ($teams as $opposition) { 

     if ($team != $opposition) { 

     $str = <<<EOF 
     <input type="hidden" name="team1[]" value="$team[1]"/> 
     <input type="hidden" name="team2[]" value="$opposition[1]"/> 

     <input type="hidden" name="team1_score[]" /> 
     <input type="hidden" name="team2_score[]" /> 

// etc... 

    EOF; 

      echo $str; 
      $counter++; 

      } 
      } 
    } 

    echo "<hr><input type=\"submit\" value=\"Go\">"; 
    echo "</form>"; 
    echo "</table>"; 
+0

啊這麼簡單 - 非常感謝! – DJC