看一下这段代码
假设你在php
中循环一组mysql查询结果while($temp = mysqli_fetch_assoc($result))
{
echo $temp['id']; // ID Column
}
当你执行$ temp = mysqli_fetch_assoc($ result)时,指针基本上会移动到下一条记录。有没有办法将指针重置为查询的开头?在此循环结束后,mysqli_fetch_assoc($ result)将仅返回空行,使其再次无法使用。那么可能的解决方案是什么?
答案 0 :(得分:1)
喜欢这个
$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
答案 1 :(得分:0)
所以我今天在工作中遇到了这个问题,我最初发现的唯一解决方案是重新查询,或者在变量中使用mysql结果的临时副本。这两者都没有吸引力。
有一个更简单的解决方案是mysql_data_seek。
基本语法是mysqli_data_seek(data,row)
所以在这种情况下你只需要做
mysqli_data_seek($result,0)
$row=mysqli_fetch_assoc($result);// Will now return the first row.
以类似的方式,你也可以再次循环它。
它与mysql_data_seek的工作方式类似。希望它有所帮助。