2012-04-22 46 views
2

Possible Duplicate:
How to reset mysql pointer back to the first row in PHP?如何重置MySQL資源的PHP指針?

我有2個while循環在我的PHP腳本中處理數據庫中的數據列表。

$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資源中。實際上,它會產生一個錯誤:

"Warning: reset() [function.reset]: Passed variable is not an array or object in /home/cs179_team13/public_html/timeTests/results.php on line 133."

爲什麼?如何重置MySQL資源的PHP指針?

+0

不能重置'resource'型 - 它不是一個陣列。只需再次進行查詢。 – halfer 2012-04-22 18:32:02

+0

謝謝。但是,我能否以某種方式避免再次查詢?我不想重複自己。 – 2012-04-22 18:32:59

+5

'mysql_data_seek($ results,0);' – Aziz 2012-04-22 18:33:10

回答

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 
} 

這是方式更方便的方式來處理數據

3

傳中的結果與0一起返回

mysql_data_seek($resultset, 0) ;//reset result set