如何重置MySQL资源的PHP指针?

时间:2012-04-22 18:30:16

标签: php

  

可能重复:
  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指针?

3 个答案:

答案 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
}

这是处理数据的更方便的方法