为什么人们不使用 for
、foreach
或 do..while()
以及为什么在 while 中省略增量计数器?
`<?php while ( $fa = mysql_fetch_array($sel1) )//uesd mysql_fetch_array() function in while loop
{
echo $fa['cid'];//display client id
}
//w3school 中的语法给出了使用这个
$x = 1;
while($x <= 5) {
echo "The number is: $x";
$x++;
}
?>//show why we don't used mysql_fecth_array() like this
最佳答案
这是一种过时的信息。在某种程度上,你提出的问题刚刚被社区接受。更好理解的是,当我有信息要显示时......做一些事情。尽管您可以,但您通常不会说对于这些项目中的每一项...做某事。然而,另一个问题是如果没有更多行,mysql_fetch_array 将返回 FALSE。这在 foreach 中不起作用,因为它不是数组。 for 也会失败,因为要检查 for 的完成,您必须到达某个点并结束。FALSE 不是有效的检查点(我曾经尝试过或使用过)。
<小时/>@Michael Berkowski 补充:
从 PHP 5.4+ 开始,mysqli_result 类确实支持迭代器,这意味着您可以执行 $result = mysqli_query(...);
以及随后的 foreach ($result as $row ) {...}
它将获取关联数组
尽管这并不是最常用的形式,这就是我们提出这个问题的原因。
<小时/>你可以做...while
但你为什么要这么做。您没有从获取数组中获得所需的大部分信息。
虽然被接受并且通常更好。不会失败,并且如果 mysql 以任何方式失败,都会有回退。
最后...不要再使用mysql_*了。切换到 mysqli_*。更安全..更智能..更好。
关于php - 为什么总是使用 "while"循环来迭代 mysql_fecth_array() 函数结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439416/