首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP - Multiple while($row = mysql_fetch_array($variable)) {}个错误

问PHP - Multiple while($row = mysql_fetch_array($variable)) {}个错误
EN

Stack Overflow用户
提问于 2012-02-07 23:42:58
回答 3查看 13.8K关注 0票数 7

好吧,我的语法可能不需要代码就能被描述。基本上,它应该是easy...but永远不是。

我在一个row...basically中有两个循环,同样的事情。我从我的数据库中选择*每个变量,然后我需要在两个sep的基础上构建一个两层的javascript。变量。

所以

我有:

代码语言:javascript
复制
while ($row = mysql_fetch_array($myVariable)) {

// do events

}

然后在那之后

代码语言:javascript
复制
while ($row2 = mysql_fetch_array($myVariable)) {

// do events

}

由于某些原因,它在第二个one...is上完全没有返回任何东西,在那里我需要重置我的数组,它是否可能结束,然后我不能只是重新启动。这样一个基本的问题,但我不知道我的生活中还会有什么问题。所以这就是问题所在,是不是一个普遍的问题,就是连续做两次,并期望PHP在$myVariable的开头重新开始,它保存了我的SELECT语句?

Thanks...will全天检查,并根据需要更新。First timer to Stack Overflow我很想看到帮助。

EN

回答 3

Stack Overflow用户

发布于 2012-02-08 00:09:12

问题是查询返回一个resource。这个资源有它自己的内部指针(计数器用来记住要返回的行)。mysql_fetch_array将使内部指针前进,并一次返回资源中每一行。一旦它在末尾(没有更多的行了),它就会返回false。因此,在最后一个循环中,$row等于false,这将退出while循环。指针不会被重置。所以在下一个while循环中,你调用mysql_fetch_array,指针在最后,所以它返回false,完全绕过第二个while循环。您应该做的是遍历数据一次,并将每一行存储到一个数组中。然后,您可以复制/循环数组,只要您想要,一切都会按预期进行。

代码语言:javascript
复制
$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);
}
票数 10
EN

Stack Overflow用户

发布于 2012-02-07 23:47:14

在第二次循环之前,尝试使用mysql_data_seek()

代码语言:javascript
复制
mysql_data_seek($myVariable, 0);

正如ZiTAL指出的那样,将记录存储在数组中并迭代该数组可能是更好的选择。

票数 4
EN

Stack Overflow用户

发布于 2012-02-07 23:58:29

如果你的循环是嵌套的,并且假设两个循环的$myVariable是相同的,只需复制它,然后每次循环不同的副本。

代码语言:javascript
复制
$myVariable = mysql_result($query);
$myVariable2 = $myVariable;

while ($row = mysql_fetch_array($myVariable)) {
    while ($row = mysql_fetch_array($myVariable2)) {
...

另一个+1表示"make it a array“,但使用起来要好得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9179194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档