3

可能重复:
如何将 mysql 指针重置回 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]:传递的变量不是第 133 行 /home/cs179_team13/public_html/timeTests/results.php 中的数组或对象。”

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

4

3 回答 3

7

您可以使用该功能mysql_data_seek

bool mysql_data_seek ( resource $result , int $row_number )

更多信息可以在http://www.php.net/manual/en/function.mysql-data-seek.php找到。

于 2012-04-22T18:33:13.133 回答
3

传递与 0 一起返回的结果集

mysql_data_seek($resultset, 0) ;//reset result set
于 2012-04-22T18:56:54.287 回答
2

你不需要这么丑陋的方式。
给自己一个数组。

$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
}

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

于 2012-04-22T18:52:24.793 回答