PHP分頁原理

2021-09-30 05:03:12 字數 1492 閱讀 7907

**於:

1、前言

分頁顯示是一種非常常見的瀏覽和顯示大量資料的方法,屬於web程式設計中最常處理的事件之一。對於web程式設計的老手來說,編寫這種**實在是和呼吸一樣自然,但是對於初學者來說,常常對這個問題摸不著頭緒,因此特地撰寫此文對這個問題進行詳細的講解,力求讓看完這篇文章的朋友在看完以後對於分頁顯示的原理和實現方法有所了解。本文適合初學者閱讀,所有示例**均使用php編寫。

2、原理

所謂分頁顯示,也就是將資料庫中的結果集人為的分成一段一段的來顯示,這裡需要兩個初始的引數:

每頁多少條記錄($pagesize)?

當前是第幾頁($currentpageid)?

現在只要再給我乙個結果集,我就可以顯示某段特定的結果出來。

以mysql資料庫為例,如果要從表內擷取某段內容,sql語句可以用:select * from table limit offset, rows。看看下面一組sql語句,嘗試一下發現其中的規率。

前10條記錄:select * from table limit 0,10

第11至20條記錄:select * from table limit 10,10

第21至30條記錄:select * from table limit 20,10

……這一組sql語句其實就是當$pagesize=10的時候取表內每一頁資料的sql語句,我們可以總結出這樣乙個模板:

select * from table limit ($currentpageid - 1) * $pagesize, $pagesize

拿這個模板代入對應的值和上邊那一組sql語句對照一下看看是不是那麼回事。搞定了最重要的如何獲取資料的問題以後,剩下的就僅僅是傳遞引數,構造合適的sql語句然後使用php從資料庫內獲取資料並顯示了。以下我將用具體**加以說明。

3、簡單**

請詳細閱讀以下**,自己除錯執行一次,最好把它修改一次,加上自己的功能,比如搜尋等等。

4、oo風格**

以下**中的資料庫連線是使用的pear db類進行處理

需要說明的地方有兩個:

這個類僅僅處理資料,並不負責處理顯示,因為我覺得將資料的處理和結果的顯示都放到乙個類裡邊實在是有些勉強。顯示的時候情況和要求多變,不如自己根據類給出的結果處理,更好的方法是根據這個pager類繼承乙個自己的子類來顯示不同的分頁,比如顯示使用者分頁列表可以:

第二個需要說明的地方就是不同資料庫的相容性,在不同的資料庫裡截獲一段結果的寫法是不一樣的。

mysql: select * from table limit offset, rows

pgsql: select * from table limit m offset n

......

所以要在類裡邊獲取結果的時候需要使用pear db類的limitquery方法。

ok,寫完收功,希望花時間看完這些文字的你不覺得是浪費了時間。

php分頁原理

1 首先了解sql語句中的limit用法 select from table limit 開始位置 操作條數 其中開始位置是從0開始的 例子 取前20條記錄 select from table limit 0 20 從第11條開始取20條記錄 select from table limit 10 2...

php分頁原理

1 首先了解sql語句中的limit用法 select from table limit 開始位置 操作條數 其中開始位置是從0開始的 例子 取前20條記錄 select from table limit 0 20 從第11條開始取20條記錄 select from table limit 10 2...

PHP分頁原理

分頁顯示是一種非常常見的瀏覽和顯示大量資料的方法,屬於web程式設計中最常處理的事件之一。對於web程式設計的老手來說,編寫這種 實在是和呼吸一樣自然,但是對於初學者來說,常常對這個問題摸不著頭緒,因此特地撰寫此文對這個問題進行詳細的講解。所謂分頁顯示,也就是將資料庫中的結果集人為的分成一段一段的來...