0

我在许多示例中都看到了以下 while 循环条件,甚至我也多次使用过它。我知道它是如何工作的以及如何使用它。但是当我在这里编码条件时没有任何意义。

正如我看到的代码,条件就像它总是正确的。就像while(1)一样。因为对*mysql_fetch_assoc()*来说,传递的数据都是一样的。所以条件是常数。

while($arr = mysql_fetch_assoc($data)) 
{
      //other code
}

现在,我错在哪里????

4

2 回答 2

4

每次调用都从结果集中mysql_fetch_assoc获取下一行。如果不再有行,则返回false并终止循环。

$data是一种资源数据类型,可能会保留最后获取哪一行的状态。
这并不罕见,甚至数组也有一个指向当前元素的内部指针,可以使用某些数组函数对其进行操作。

于 2013-01-05T10:04:21.820 回答
0

PHP 网站mysql_fetch_assoc “返回对应于获取行的字符串关联数组,如果没有更多行,则返回 FALSE。

因此,只要仍有可用的行,mysql_fetch_assoc将返回行内容的关联数组,将指针递增到下一行并while执行循环。

当没有更多行将mysql_fetch_assoc返回时FALSE,循环将中断。

另请注意,从 PHP 5.5.5 开始,该函数将被弃用。

于 2013-01-05T10:05:27.813 回答