2012-05-26 63 views
1

有沒有辦法使用PHP來獲取MYSQL查詢結果,從獲取的第一條記錄中的列中獲取值,然後將該記錄放回到查詢結果中所以當稍後循環結果集時,該記錄可以再次使用?如果這是可能的,我可以把記錄重新放回第一個位置嗎?有沒有辦法使用PHP來取得一個MySQL查詢結果

或者我應該從第一行返回需要的值作爲我在MYSQL例程中的單獨變量。如果這是更好的途徑,有人能給我一些關於如何返回一個查詢結果集和一個單獨的變量的見解嗎?我似乎也無法讓這個工作。

或者最好的辦法是從查詢結果集中創建我自己的數組,然後根據需要操作mysql結果集?我試圖遠離這一切,只是爲了削減創建該數組的步驟,如果上述兩個選項之一是可能的,否則我只會去這個。

在此先感謝。

+0

你不做實時/嵌入式開發。使用thired選項你給或操縱sql本身的值... –

+1

我同意;創建數組的代價很小,數據在這種形式中更有用。 – octern

+0

如果您再解釋一下這個問題,我們可能會幫助您更多。它聽起來有點像你可能只需要一個聰明的連接。 – Corbin

回答

1

在您需要再次循環之前,您可以使用mysql_data_seek($query, 0); 然後再次調用fetch將成爲第一行。

我沒有親自使用過它,但是這就是我從PHP手冊瞭解: http://us.php.net/manual/en/function.mysql-data-seek.php

+0

不是他想要的 –

+0

謝謝@Jakar它像一個魅力工作。在開始循環結果集之前,我能夠進行第一次獲取並從我需要的列中獲取值,然後將指針重置爲0位置,並在第一條記錄上開始循環時執行。 – Ryan

+0

感謝ItayMoav和octern的洞察力。我同意創建這個數組的成本是微不足道的,但是如果可能的話,只是想把它切掉。 – Ryan

0

我同意上面的答案,但只是爲了說明它的方式略有不同:

有沒有意思將查詢結果對象內的指針倒回。你必須跟蹤它的位置,這很容易搞砸,它不值得微小的速度增加。

複製整個數組並使用鍵訪問記錄要好得多。更容易跟蹤正在發生的事情。

相關問題