【问题标题】:How do I loop through MySQL results easily?如何轻松遍历 MySQL 结果?
【发布时间】: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。我该如何解决这个问题或者我可以使用哪些其他系统?

【问题讨论】:

    标签: php mysql html database


    【解决方案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 这听起来是一个你应该问的好问题。
      • 嘿,刚刚在这里发布了问题 - stackoverflow.com/questions/14963322/…
      猜你喜欢
      • 2020-07-12
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-22
      • 2015-10-05
      • 2021-02-15
      相关资源
      最近更新 更多