好吧,我的语法或许可以在没有代码的情况下进行描述。基本上它应该很容易......但从来都不是。
我连续有 2 个循环...基本上是同一件事。我从我的数据库中选择 * 每个变量,然后我需要基于两个 sep 构建一个 2 层 javascript。变量。
所以
我有:
while ($row = mysql_fetch_array($myVariable)) {
// do events
}
然后在那之后
while ($row2 = mysql_fetch_array($myVariable)) {
// do events
}
出于某种原因,它在第二个上完全没有返回任何内容...是否有一些地方我需要重置我的阵列,它是否可能结束然后我不能重新启动。这是一个基本的问题,但我无法弄清楚我的生活还有什么问题。那么问题来了,连续两次执行此操作并期望 PHP 每次都在保存我的 SELECT 语句的 $myVariable 开头重新开始是不是一个普遍问题?
谢谢...将全天检查并根据需要进行更新。 Stack Overflow 的初学者,我很乐意看到帮助。
最佳答案
问题是查询返回 resource .该资源有它自己的内部指针(用于记住要返回哪一行的计数器)。 mysql_fetch_array将推进该内部指针并一次返回资源中的每一行。一旦它到达末尾(没有更多的行),它返回 false。所以在最后一个循环中,$row 等于 false 退出 while 循环。虽然指针没有重置。因此,在下一个 while 循环中,您调用 mysql_fetch_array,指针位于末尾,因此它返回 false,从而完全绕过第二个 while 循环。您应该做的是循环一次数据并将每一行存储到一个数组中。然后,您可以根据需要复制/循环数组,一切都按预期进行。
$data = array();
while ($row = mysql_fetch_array($myVariable)) {
$data[] = $row;
}
//now $data has all the rows. a simple foreach will loop over the data.
foreach($data as $row){
//do events
print_r($row);
}
//and you can loop over data again and again.
foreach($data as $row){
//do events
print_r($row);
}
关于PHP - 多个 while($row = mysql_fetch_array($variable)) { } 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179194/