可能重复:
How to reset mysql pointer back to the first row in PHP?
我的PHP脚本中有2个while循环,用于处理数据库中的数据列表。
$results = mysql_query("SELECT * FROM myTable");
while ($result = mysql_fetch_object($results)) {
// do stuff
}
reset($results);
while ($result = mysql_fetch_object($results)) {
// do some more stuff
}
但是,reset()函数不会在MySQL资源中重置我的指针。实际上,它会产生错误:
“警告:reset()[function.reset]:传递的变量不是数组或 /home/cs179_team13/public_html/timeTests/results.php上的对象 第133行。“
为什么呢?如何重置MySQL资源的PHP指针?
答案 0 :(得分:5)
您可以使用mysql_data_seek
功能。
bool mysql_data_seek ( resource $result , int $row_number )
可以在http://www.php.net/manual/en/function.mysql-data-seek.php找到更多信息。
答案 1 :(得分:3)
传递返回的结果集以及0
mysql_data_seek($resultset, 0) ;//reset result set
答案 2 :(得分:1)
你不需要这么丑陋的方式 只是给自己一个阵列。
$data = sql_to_arr("SELECT * FROM myTable");
foreach ($data as $row) {
// do stuff
}
foreach ($data as $row) {
// do stuff
}
foreach ($data as $row) {
// do stuff
}
这是处理数据的更方便的方法