php - 为什么总是使用 "while"循环来迭代 mysql_fecth_array() 函数结果?

标签 php mysql loops while-loop

为什么人们不使用 forforeachdo..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/

相关文章:

c - 增加整数和初始化放置会产生奇怪的效果吗?

php - Blade 模板语法错误,意外 '}' - laravel 5

php - 如何在try/catch语句laravel中记录错误?

mysql - 从 phpMyAdmin 导出减去用户名?

mysql - 如何检查表 mysql.proc 是否存在

mysql - SQL 查询拒绝关注顺序子句

python - 使用循环创建和分配多个变量 (Python)

python - 检查当前时间与下一个 5 分钟之间的时差

php - 显示未定义索引 : password 的错误

php - 日期作为列(每天创建报告)