2014-05-01 77 views
0

我正在嘗試爲我的網站創建一個簡單的分頁。
我有一個表中的行與3值
ID(AI)

價格
簡單PHP MySQL分頁(顯示更多按鈕,帶參數)

SELECT * FROM `mytable` ORDER BY `id`LIMIT 10 

我用非常簡單的MySQL的請求,以顯示它,和JS/AJAX按鈕來顯示更多。
當其ID排序,很容易表現出更多的 - 我知道最後的ID,並且我加入這個信息到下一個請求

SELECT * FROM `mytable` WHERE `id` > $lastid ORDER BY `id` LIMIT 10 

但我怎麼能創造同樣的分頁,如果我會按價格訂購?
它可以是100個項目有同樣的價格,所以我不能寫

WHERE `price` > $lastprice 

,因爲它會顯示只有10%與同價位的所有項目的
另外,我不能寫

WHERE `price` > $lastprice AND `id` > $lastid 

因爲id最大的商品價格較低。 任何想法,使其工作?
謝謝!
p.s.實際上這不是一個真正的分頁,它只有一個按鈕「顯示更多」,它會從AJAX服務器接收下一個10個項目。

回答

1

你可以做到這一點的JavaScript中,調用Ajax的功能時,它傳遞已打印的行數,那麼在MySQL查詢更改爲

..... LIMIT "value passed", 10 
+0

這是它100% 謝謝! –

1

你實際上並不需要在WHERE條款這個案例。查詢應該是這樣的

SELECT * FROM `mytable` ORDER BY `price` DESC LIMIT <offset>, <results per page> 

哪裏offset是結果的數量要跳過results per page將返回結果的數量(在你的情況下,10)。爲了計算offset的值,你需要頁碼而不是最後一個id。如果你知道,然後(我假設是php的後端):

$page = isset($_GET['page']) ? $_GET['page'] : 1; 
$offset = ($page - 1) * <resutls per page>; 

這樣,您將得到0的第一頁,10第二等的偏移。

+0

非常感謝您的好榜樣! –