100" $result = mysql_query($query); 对于这个-6ren">
gpt4 book ai didi

php - while ($row = mysql_fetch_array($result)) - 执行了多少个循环?

转载 作者:IT老高 更新时间:2023-10-29 00:19:16 27 4
gpt4 key购买 nike

如果...

$query = "SELECT col1,col2,col3 FROM table WHERE id > 100"
$result = mysql_query($query);

对于这个 Action :

while ($row = mysql_fetch_array($result)){
....
}

这是在执行 1 个循环(迭代 x 次)吗?

对于这个:

$row = mysql_fetch_array($result)
foreach($row as $r){
...
}

这是在执行 2 个循环(迭代 x 次)吗?

其中 x 是结果数


编辑:

好的,谢谢大家,好的,我基本上把这个问题表述得非常非常糟糕。

回想起来应该是

'does mysql_fetch_array() only return one row each time it is called'

我现在很高兴我对 mysql_fetch_array() 的理解是不正确的!

感谢您的宝贵时间!

最佳答案

I'm assuming mysql_fetch_array() perfroms a loop, so I'm interested in if using a while() in conjunction with it, if it saves a nested loop.

没有。 mysql_fetch_array 只返回结果的下一行并推进内部指针。它不循环。 (在内部它可能会或可能不会在某处使用某个循环,但这无关紧要。)

while ($row = mysql_fetch_array($result)) {
...
}

执行以下操作:

  1. mysql_fetch_array 检索并返回下一行
  2. 该行被分配给 $row
  3. 计算表达式,如果计算结果为 true,则执行循环的内容
  4. 程序重新开始
$row = mysql_fetch_array($result);
foreach($row as $r) {
...
}

执行以下操作:

  1. mysql_fetch_array 检索并返回下一行
  2. 该行被分配给 $row
  3. foreach 循环遍历数组的内容,并根据数组中的项目执行循环内容的次数

在这两种情况下,mysql_fetch_array 的作用完全相同。你只有你写的那么多循环。不过,这两种构造都不做同样的事情。第二个只会作用于结果的一行,而第一个会遍历所有行。

关于php - while ($row = mysql_fetch_array($result)) - 执行了多少个循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2974011/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com