如何轻松遍历 MySQL 结果?

Posted

技术标签:

【中文标题】如何轻松遍历 MySQL 结果?【英文标题】:How do I loop through MySQL results easily? 【发布时间】:2010-11-19 19:59:23 【问题描述】:

我一直在请求 mysql 结果并像这样循环它们:

$query = "SELECT * FROM $table";
$result = mysql_query($query);
for($i = 0; $i < mysql_num_rows($result); $i++)
    echo mysql_result($result, $i, $row);
    //do something else;

您可能会看到会发生什么。如果一行被删除了怎么办?如果第一个项目没有了怎么办?在这种情况下,列表中可能有 30 个项目,但最后一个项目索引位于位置 50。我该如何解决这个问题或者我可以使用哪些其他系统?

【问题讨论】:

【参考方案1】:

另外 - 我相信整个行集是在查询时获得的,在执行查询后删除的行仍然会出现在您的结果中。

【讨论】:

【参考方案2】:
while($temp = mysql_fetch_assoc($result))

     echo $temp['id']; // ID Column

但是顺便说一句。 mysql_num_rows 返回您获取的行数。如果您有一行被删除,它就不会被提取,因此它不会计入该数字。

【讨论】:

应该注意的是除了mysql_fetch_assoc之外还有其他的函数,主要的函数是mysql_fetch_object,除了返回stdClass类的对象外,它们的工作方式相同。它可以在 while() 循环中使用,就像这里的 mysql_fetch_assoc 一样。 如果通常这样做 while($result and $temp = mysql_fetch_assoc($result)) 当你执行 $temp=mysql_fetch_assoc($result) 时,基本上指针会移动到下一条记录。有没有办法将指针重置为查询的开头? @PratikBothra 这听起来是一个你应该问的好问题。 嘿,刚刚在这里发布了问题 - ***.com/questions/14963322/…

以上是关于如何轻松遍历 MySQL 结果?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL存储过程中如何遍历查询结果然后调用另一个存储过程?

如何循环遍历document.querySelectorAll()方法返回的结果

C++遍历mysql结果集,一万条数据花多长时间?

遍历 Nodejs MySQL 结果集中的字段

mysql全表遍历为啥耗时

mysql存储过程之循环遍历查询结果集