分頁比較簡單,我會嘗試用最簡單的方式描述它。
要開始與這裏有5項或短語(或參數),你將在大多數分頁情況下遇到:
- 限制(或每頁結果)
- 偏移(從哪裏開始設置從結果/記錄)
- 當前頁
- 總結果頁
- 數
以下面的例子中查詢:
SELECT * FROM products WHERE active = 1 LIMIT 0 , 25
在上面的SQL(它應該的mysqli工作):
- 25 =>是限制(或每頁的結果)
- 0 =>偏移量(i。E從結果或記錄0)
換算成開始,
give me the results 0 - 24, i.e. the first 25 results
因此,假設你有一個產品表1000分的記錄,你需要在網頁上只顯示25條記錄顯示這些每頁:關於第一個頁面這些將是5個以上方面的值:
- 限制(每頁的結果)=> 25
- 偏移=> 0
- 當前頁面=> 1
- 總計結果=> 1000
- 頁數=>總結果/極限=> 40
一般的偏移量來計算動態基於當前頁和限制上,所以第1頁您的產品的結果,偏移將等於:
offset = (current page * limit) - limit
i.e. (1 * 25) - 25 = 0
所以你mysqli的查詢是:
SELECT * FROM products WHERE active = 1 LIMIT [OFFSET] , [LIMIT]
i.e. SELECT * FROM products WHERE active = 1 LIMIT 0 , 25
使用相同的原則,爲您的產品的結果的第2頁,偏移(或者開始從結果)將是:
offset = (current page * limit) - limit
i.e. (2 * 25) - 25 = 25
所以你mysqli的查詢是:
SELECT * FROM products WHERE active = 1 LIMIT [OFFSET] , [LIMIT]
i.e. SELECT * FROM products WHERE active = 1 LIMIT 25 , 25
它轉換成,
give me the results 25 - 49, i.e. the next 25 results starting from record 25
其他條款將具有以下值:
- 限制(每頁或結果)=> 25
- 當前頁=> 2
- 總計結果=> 1000
- 頁數=> 40
在大多數簡單的用 - 分頁的情況下,唯一改變的參數是偏移量和當前頁面。如果您在查詢中引入了過濾器,那麼除了前者2之外,總結果和頁數也可以更改。
我希望上面的解釋有助於爲您提供對分頁的基本理解。
好的分頁不是一個難題,它只是相當複雜,因此任何教程都會感覺很大。你能鏈接到你發現的一些你感興趣的特定文章/教程嗎?這可能會讓人們更容易幫助完善答案。 – AgmLauncher
我添加了兩個我看過的例子。 – user2565624