嗨,这是我的代码:
while ($row = mysql_fetch_array($res)){
echo "<br>looped firist loop <br>";
while ($row2 = mysql_fetch_array($res2)){
echo "<br>looped second loop <br>";
}
}
显示
循环的firist循环
循环第二个循环
循环第二个循环
循环的firist循环
循环的firist循环
问题是:在第二个循环中循环直到数组完成。然后第二次调用第一个循环时,它不会从数组的开头开始。所以循环已达到最大值。这是什么问题,我该如何解决?
答案 0 :(得分:1)
如果要再次迭代结果集指针,则需要使用mysql_data_seek()将结果集指针重置回$res2
的开头:
while ($row = mysql_fetch_array($res)){
echo "<br>looped firist loop <br>";
mysql_data_seek($res2, 0);
while ($row2 = mysql_fetch_array($res2)){
echo "<br>looped second loop <br>";
}
}
但MySQL扩展已经过时并且已弃用,并且最新版本的PHP不再存在,所以请进入21世纪并开始使用MySQLi或PDO
嵌套循环也无可救药地低效,并且可能有更好的方法来实现你想要的东西