2011-11-22 66 views
0

我到處搜索,但沒有得到任何東西。這種情況是,當我從MySQL/PHP運行select語句時,我想使用Next按鈕在結果中向後和向前導航。Navigate Throught MySQL Result

有誰知道我該如何做到這一點? 以下是我如何運行查詢:select everything from members where hair = black;

這將返回8個結果,並且我有一個像這樣的頁面details.php?id=3需要id並顯示詳細信息。

我希望能夠繼續點擊下一個按鈕並從結果中移到另一個ID。

我該如何做到這一點?

感謝您的協助。

+0

你看過這個鏈接嗎? :http://www.phpfreaks。com/tutorial/basic-pagination這不完全是你需要的,但它幾乎是那種類型.. – Nonym

回答

1

假設你已經在$allIds VAR所有ID,嘗試這樣的事情:

​​
+0

謝謝你,但你的建議是非常微不足道的。 –

+0

這假定您的下一個記錄ID是連續的。如果一條記錄在兩者之間被刪除可能不是。 – davidethell

+0

在這種情況下,在您的查詢中,您應該使用> =運算符,並且限制爲1。 – bigblind

1

如果你的意思下一步按鈕來顯示每頁1點產品的詳細信息,然後

 
1) Get the total rows from table 
2) Find total number of pages like 
$totalPages = $totalRows; //since 1 record per page 
3) Loop thru $totalPages value to generate next links 
4) Get the id of product from page url $_GET 
5) Query sql using te product id obtained frm GET 

那麼這就是基本知識,希望你得到它

0

那麼,你有2個不同的範圍來解決,首先,當你查詢你在PHP /服務器端模式。 PHP獲取一些數據,處理它,根據我對你的問題的知識展示一些數據,然後將它發送到瀏覽器。

接下來,您有客戶端作用域,其中客戶端將HTML呈現到他的屏幕上,並且可以單擊NEXT和PREVIOUS。當他這樣做時,他向服務器發出一個請求,以根據當前的請求獲取NEXT或PREVIOUS記錄。

你有2個場景來解決這個問題出來了:

1)加載整個數據到內存,進行掃描,以找到你的當前位置,看是否有下一個和前一個元素,並請求作出迴應用戶。如果用戶要求下一個,簡單,只需移動一個記錄。如果用戶要求上一個項目,那麼當使用WHILE或FOR/FOREACH進行掃描時,請始終在內存中保存您所看到的「最新項目」,您可以將此「lastitem」用作您的上一個項目。 2)如果你有很多(我的意思是超過1000個)項目,你需要使用一個小的子查詢魔術,並使用SQL來解決這個問題。

select everything from members where hair = black AND id = XYZ ORDER BY id LIMIT 2; 

這將返回CURRENT和NEXT元素。然後再次調用相同的查詢,但是這次請將其命令爲DESC,以便您的2個項目是當前和過去的。

select everything from members where hair = black AND id = XYZ ORDER BY id DESC LIMIT 2; 

注意,您可以訂購您想要的方式,我們的目標是獲得一個靜態結果,東西總是得到了同樣的方式,這樣就可以扭轉這種局面,並得到各地選擇一個項目。

我希望這可以幫到你

+0

感謝Mathieu,我會嘗試這個建議,看看它是否有效。 –

相關問題