gpt4 book ai didi

php - 重置 while 循环

转载 作者:行者123 更新时间:2023-11-30 07:46:53 27 4
gpt4 key购买 nike

我在编写的用于生成一些 javascript 的 php 脚本中发现了一个令人困惑的事情。如下所示,略有简化。

除非我注释掉整个第一个 while 循环,否则第二个 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++;
}
?>

最佳答案

您还没有复制结果集,您刚刚结束了对结果集的两个引用。无论您使用哪个引用,底层结果集对象都是相同的,因此在第二个循环开始时您已经处理了所有记录。

您可能想切换到使用单个循环,并跟踪要在数组中输出的数据。或者,as Flinsch points out ,你可以使用mysql_data_seek返回到结果集的开头,因为您使用的是缓冲查询。

关于php - 重置 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4547594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com