2015-11-11 55 views
-2

我做了一個while循環,所以代碼讀出了多少目標得分。 這與計數器一起使用,您可以看到$scorecounter = 1;$scorecounter++;。 它還增加了如果1個進球,球員一個進球。 當有6次得分時,while循環有6次。儘管在一段時間循環不會循環PHP MYSQL

一切正常,但唯一不起作用的是te頁面不斷加載。就像它永遠在循環中一樣。該頁面不會刷新,它會一直執行第二個while循環。

我知道它是與:

while ($scorecounter <= $scorecounter) { 
          mysql_query("INSERT INTO goals (PlayerID, GameID, Name, Team, added_on) VALUES ('$IDdpt', '$Gamedpt', '$Namedpt', '$comp', '$date')"); 
       } 

但我找不到在哪裏它永遠做線路故障。

這裏是我的全部代碼:

<?php 
$Gamedpt = $row['ID']; 
$IDdpt = $_POST['ID1']; 
$Namedpt = $_POST['player1']; 

$scorecounter = 1; 

if (stristr($row['Hometeam'],"$club")) { 
    $totalgoals = $row['Thuisscore']; 
} 
if (stristr($row['Awayteam'],"$club")) { 
    $totalgoals = $row['Uitscore']; 
} 
while ($doelpuntcounter <= $totalgoals) { 

if ($_POST["score1"] == "$scorecounter") { 
    echo $_POST["player1"]; 
    echo " has $scorecounter times scored"; 
    mysql_query("UPDATE players SET Goals = Goals+'$scorecounter' WHERE Naam ='".$_POST["player1"]."'"); 
        while ($scorecounter <= $scorecounter) { 
         mysql_query("INSERT INTO goals (PlayerID, GameID, Name, Team, added_on) VALUES ('$IDdpt', '$Gamedpt', '$Namedpt', '$comp', '$date')"); 
      } 

    } 
    $scorecounter++; 
} 
?> 

請幫助。

+6

'而($ scorecounter <= $ scorecounter)',會給你一個無限循環,因爲'$ scorecounter'將永遠等於本身。 – NaijaProgrammer

+0

在什麼我需要改變它,所以它會等於目標的數量被填入 – JeremyBlack

+0

除了@NaijaProgrammer:$ doelpuntcounter'增加的位置(外部循環)? – Jan

回答

0

正如已經在註釋中提到:

while ($scorecounter <= $scorecounter)

會給你一個無限循環,因爲$ scorecounter總是等於本身。

你需要像這樣停止infinte循環:

$loop_breaker = 0; 
while (++$loop_breaker <= $scorecounter) { 
         mysql_query("INSERT INTO goals (PlayerID, GameID, Name, Team, added_on) VALUES ('$IDdpt', '$Gamedpt', '$Namedpt', '$comp', '$date')"); 
} 
+0

謝謝你的工作! – JeremyBlack

0

你的代碼有兩個缺陷。我已經打算編寫代碼並添加了一些評論。請閱讀下面的警告。

while ($doelpuntcounter <= $totalgoals) { 
    if ($_POST["score1"] == "$scorecounter") { 
     echo $_POST["player1"] . " has $scorecounter times scored."; 
     mysql_query("UPDATE players SET Goals = Goals+'$scorecounter' WHERE Naam ='".$_POST["player1"]."'"); 
     while ($scorecounter <= $scorecounter) { 
      mysql_query("INSERT INTO goals (PlayerID, GameID, Name, Team, added_on) VALUES ('$IDdpt', '$Gamedpt', '$Namedpt', '$comp', '$date')"); 
      $scorecounter++; // needs to be in this while loop, flaw #1 ! 
     } 

    } 
    // additionally, where is your $doelpuntcounter incremented??? 
    // flaw #2 
} 

此外,您仍在使用舊的mysql函數。相反,嘗試使用新的mysqli函數或PDO

0

的問題是在下面的行:

while ($scorecounter <= $scorecounter) { ... }

也可以認爲這是檢查是否1是小於或等於1。這是的while (true) { ... }等效,因此將導致無限循環。你大概意思如下:

while ($scorecounter <= $totalgoals) { ... }