2013-01-20 33 views
0

我想多次使用查詢結果。PHP重用mysql結果集行

$result=mysql_query("Select field from tables;"); 

while($result_details = mysql_fetch_array($result)) 
    { echo $result_details[0]; //Returns 10 Rows.. 
} 

,但如果我用mysql_fetch_array($結果)再次它不是返回行.. 我不想執行相同的查詢多次,請讓我知道如何使用查詢的結果多次。

+0

警告:' mysql_xxx()函數在很長一段時間內被認爲是不好的做法,現在已經被正式棄用了。如果可能的話,你應該改變你的代碼來使用'mysqli_xx()'函數或者PDO庫。 – Spudley

+0

@Spudley:請問我知道是什麼原因? – logan

+0

我建議你閱讀:[爲什麼不應該在PHP中使用mysql_ *函數?](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – Spudley

回答

1

你需要「倒帶」結果指針使用:

$result=mysql_query("Select field from tables;"); 
while($result_details = mysql_fetch_array($result)) 
{ 
    $var[]=$result_details; 
} 

然後,所有使用foreach循環,並在單個變量$var任何地方顯示:http://php.net/manual/en/function.mysql-data-seek.php

+0

看到這個問題: http://stackoverflow.com/questions/11621029/php-reset-mysqli-result –

+0

你的意思是說?了mysql_free_result($結果); – logan

+1

不,我的意思正是我在回答中寫的。 'mysql_data_seek()'。如果你解放了你的結果,你就再也無法做任何事情了。 –

1

首先使用while循環獲取所有記錄您在查詢中使用查詢或將查詢放在functions.php文件中的相同頁面,幷包含並在任意位置使用:

foreach ($var as $value) { 
    $value['field']; 
} 
+0

這不是重新使用..這是將值複製到其他數組.. – logan

0

如果你不想做多個查詢,然後簡單地放鬆一下指針您執行code.You應該調用函數所需position.After尋求初始(0)位置:

$result=mysql_query("Select field from tables;"); 

    while($result_details = mysql_fetch_array($result)) 
     { echo $result_details[0]; //Returns 10 Rows.. 
    } 
     mysqli_data_seek($result ,0);