PHP - 多个 while($row = mysql_fetch_array($variable)) { } 错误

标签 php mysql while-loop

好吧,我的语法或许可以在没有代码的情况下进行描述。基本上它应该很容易......但从来都不是。

我连续有 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/

相关文章:

Android app + MySQL数据库结构与设计

mysql - SQL 替换所有指定的键

php - 我的填充不起作用

bash - 虽然文件不包含字符串 BASH

SQL - 如何用单个 future 日期时间替换一系列日期时间?

java - 什么是NumberFormatException,我该如何解决?

php - 如何在 php 中验证 ANDROID_ID?

php - WebSocket 不适用于 https 请求,并且它使用 PHP Ratchet 库与 http 正常工作

php - 如何获取数组列表中的对象php

javascript - Wordpress AJAX 调用不断返回 0