私はいくつかのJavaScriptを生成するために書いているPHPスクリプトで混乱しているものを見つけました。ここではこれを少し簡略化して示します。whileループのリセット
最初のwhileループ全体をコメントアウトしない限り、2番目のwhileループは実行されません。なぜ誰かが説明できますか?どうもありがとう。
<?php
$listid = 2; //DEMO ONLY
$result1 = mysql_query("SELECT words.wid,words.wordmd5,words.word FROM words,instances WHERE words.wid = instances.wid AND instances.lid = \"$listid\"");
$result1copy = $result1;
$count1 = 1;
while($row = mysql_fetch_object($result1))
{
print "words_left[$count1] = \"".$row->word."\";\n";
//Increment the array counter (starts at 1)
$count1++;
}
?>
//Some javascript
<?php
$count2 = 1;
while($row = mysql_fetch_object($result1copy))
{
print "
$count2 then $row->wordmd5
";
$count2++;
}
?>
無限ループです。 '$ count1'をインクリメントしていますが、' while'ループは '$ row'をテストしています。これは常にtrueを返します。 – Kai
@Kai:$ rowは常に真ではなく、すべてのレコードが処理されたときにnullになります。 – Chetan