2015-11-11 139 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) { ... }