之前不太懂後臺的時候一直在糾結分頁機制具體是如何實現的,好高端的趕腳,隨着知識的增加和經驗的日積月累,發現其實也就是那麼回事,那麼具體是怎麼一回事呢?或許還有不少新手小夥伴不太清楚具體的實現機制,那麼接下來咱們一塊兒來分享一下吧!php
請看如下圖片的內容:sql
當前頁面只顯示兩條數據(這個具體每頁顯示多少條根據業務須要,我這只是作測試而已),那麼能夠看到總共頁數有兩頁(稍後講解這個兩頁是怎麼的出來的),頁面剛進來的時候顯示的數據默認爲第一頁。(好吧,我認可我寫到這的時候我忽然不知道接下來該怎麼寫了~~~~)數據庫
仍是先來看一組照片: 數組
<- listGiftActivity函數體裏具體實現的功能相似於這樣的一段sql:函數
select * from '表名' where 'pari_id' = $params['party_id'] LIMIT {$limit} OFFSET {$offset} , 那麼一開始的時候獲得的是數據庫裏查詢的offset爲0的兩條數據,即每頁顯示兩條數據,數據返回所有存放在$list變量中,這個具體怎麼將數據取出來造成表格很少作講解,不是本章重點,函數的參數列表的最後一個$count是引用型變量,可直接拿來用,$count所對應的就是查詢到的全部數據的總條數,這裏須要注意的有兩個地方:測試
1:isset($_REQUEST['fenye']) 這個對後面的分頁機制起關鍵做用url
2:$count變量 該變量是分頁機制中的總頁數的顯示spa
每頁顯示兩條數據已經搞定,那麼如今咱們該處理的就是分頁按鈕中的點擊不一樣按鈕出現不一樣的數據,仍是來看一組代碼圖片:orm
目前咱們須要以下數據:$extra_params數組,總條數,每頁顯示的條數,當前頁數(頁面剛載入時默認爲1),總頁數(總條數除以每頁顯示條數),url地址,$page = max(1,min($page,$total_page)); 該行代碼主要處理的是總頁數只有一頁的狀況,在函數體裏具體邏輯以下:首先,獲得總頁數(例如當前頁數爲2),具體進行以下操做:
圖片
注:圖片中的 「上一頁」 應改成 「下一頁」,手誤,見諒
而後將這些數據進行拼接獲得每個a標籤的href爲l:gift_activity/gift_activity.php?fenye=link&page=(當前頁)(拼接url只是用到了$extra_params數組,url,page變量),後臺接收到兩個參數, fenye,page,這裏就須要用到了 if(isset($_REQUEST['fenye'])),而後進入if語句,進行offset的從新計算(即:$offset = $limit * ($page-1)),而後從新執行最開始的sql查詢,獲得的數據覆蓋原先的數據進行顯示,這樣,分頁機制就徹底實現了。
寫的有點囉嗦,若有寫的很差的地方,還請多多指點!!!!