我在很多例子中看到了以下while循环条件,甚至我已经多次使用它了。我知道它是如何工作的以及如何使用它。但是,因为我编码这里的条件没有任何意义。
当我看到代码时,条件就像它总是如此。就像 while(1)一样。因为对于* mysql_fetch_assoc()*,传递相同的数据是一直传递的。所以条件是一个常数。
while($arr = mysql_fetch_assoc($data))
{
//other code
}
现在,我错在哪里????
答案 0 :(得分:4)
每次调用mysql_fetch_assoc
都会从结果集中获取下一行行。如果没有行,则返回false
并且循环终止。
$data
是resource数据类型,可能会保留最后获取哪一行的状态。
这并不罕见,即使数组有一个指向当前元素的内部指针,可以使用某些数组函数进行操作。
答案 1 :(得分:0)
从PHP website,mysql_fetch_assoc“返回与获取的行对应的字符串关联数组,如果没有其他行,则返回FALSE。”
因此,只要仍有可用行,mysql_fetch_assoc
将返回行内容的关联数组,将指针递增到下一行,while
循环将执行。
如果没有其他行mysql_fetch_assoc
将返回FALSE
并且循环将中断。
另请注意,自PHP 5.5.5起,此函数将被弃用。