Php Mysqli_fetch_assoc($result),指针移动到下一条记录。有没有办法重置指向查询结果开头的指针?
看看这个代码 假设您正在php中循环一组mysql查询结果Php Mysqli_fetch_assoc($result),指针移动到下一条记录。有没有办法重置指向查询结果开头的指针?,php,mysql,mysqli,Php,Mysql,Mysqli,看看这个代码 假设您正在php中循环一组mysql查询结果 while($temp = mysqli_fetch_assoc($result)) { echo $temp['id']; // ID Column } 当您执行$temp=mysqli\u fetch\u assoc($result)时,指针基本上会移动到下一条记录。有没有办法重置指向查询开始的指针?在这个循环结束后,mysqli_fetch_assoc($result)将只返回空行,使其再次无法使用。那么可能的解决方案是什么呢
while($temp = mysqli_fetch_assoc($result))
{
echo $temp['id']; // ID Column
}
当您执行$temp=mysqli\u fetch\u assoc($result)时,指针基本上会移动到下一条记录。有没有办法重置指向查询开始的指针?在这个循环结束后,mysqli_fetch_assoc($result)将只返回空行,使其再次无法使用。那么可能的解决方案是什么呢?所以我今天在工作中遇到了这个问题,我最初找到的唯一解决方案是重新查询,或者在变量中使用mysql result的临时副本。这两个都没有吸引力 有一个更简单的解决方案,就是mysql\u data\u seek 基本语法是mysqli_data_seek(数据,行) 所以在这种情况下,你就这么做
mysqli_data_seek($result,0)
$row=mysqli_fetch_assoc($result);// Will now return the first row.
以类似的方式,您也可以再次循环
它与mysql\u data\u seek的工作原理类似。希望能有所帮助
$data = $db->getAll("SELECT * FROM table");
foreach ($data as $row) // 1st iteration
foreach ($data as $row) // 2nd iteration
foreach ($data as $row) // and so on
如果再看到一个人使用不推荐的mysql驱动程序,我的大脑就会爆炸。我确实使用了mysqli一个……正如我所说,这是关于最初的问题。无论如何,我会做必要的编辑。你链接的问题是相当虚假的。结果不会从你的结果集中随机消失。@lvaroG.Vicario-我有点同意,只是想说这是对那里的评论的后续。删除了链接,但我确实被这个问题困扰了很长一段时间。有趣的解决方案。而且也很整洁。