## 分頁兩個步驟
1. 分頁數據的獲取
2. 分頁的頁碼鏈接實現
## 分頁數據的獲取
就是知道我們數據每頁最多顯示多少條,然后查詢出每頁對應的數據條數。注意下一頁的數據不能和前面的重復。
這時候有兩種查詢方式:limit和page 連貫操作。
比方我有100條數數據 分10頁顯示,每頁10條。
第一頁怎么獲取呢?
limit(0, 10)、page(1,10)
第N頁呢 limit( (N-1)*10+1, 10)、page(N,10)
從這看出 page 比較方便 只要傳多少頁,每頁多少條就行了。不用計算。
前面“列表”章節里我們也展示過page的使用了。
現在我們接著說分頁的第二步。
## 分頁的頁碼鏈接實現。
可能聽著比較繞,我附個圖:

大家應該知道是什么了。
這個是幫助大家定位的,我看到了第幾頁,有沒有到所有數據的末尾。
下面是我的實現:
~~~
/* 分頁 */
$total = $postModel->where($map)->count();
$page = new \Think\Page($total, $list_row);
//$page->rollPage = 5;
$page->setConfig('prev','上一頁');
$page->setConfig('next','下一頁');
$page->setConfig('theme','<div class="pager">%UP_PAGE% %DOWN_PAGE%</div>');
$p = $page->show();
$this->assign('_page', $p? $p: '');
~~~
分頁一定要用當前數據的查詢條件,不然數量和查詢結果不一樣就是bug了。
計算總數, 引入分頁類,傳入總數和每頁數量。
如果要定制,像我一樣,在page類show方法前面,設置page類的屬性和配置參數。
以為目前文章數量比較少,我為了測試分頁頁碼樣式,我先寫死每頁數量為5。調試好了注釋掉。
具體分頁類怎么使用,大家看 官方手冊[《數據分頁》](http://document.thinkphp.cn/manual_3_2.html#data_page) 章節,里面還提了用分頁類計算firstRow 也就是limit的第一個參數。
我的分頁頁碼效果:

就“上一頁”和“下一頁” 兩個。符合博客的風格。
通過 搜索和分頁,我們就能定位到久遠的文章了。
- 序
- 前言
- 內容簡介
- 目錄
- 基礎知識
- 起步
- 控制器
- 模型
- 模板
- 命名空間
- 進階知識
- 路由
- 配置
- 緩存
- 權限
- 擴展
- 國際化
- 安全
- 單元測試
- 拿來主義
- 調試方法
- 調試的步驟
- 調試工具
- 顯示trace信息
- 開啟調試和關閉調試的區別
- netbeans+xdebug
- Socketlog
- PHP常見錯誤
- 小黃鴨調試法,每個程序員都要知道的
- 應用場景
- 第三方登錄
- 圖片處理
- 博客
- SAE
- REST實踐
- Cli
- ajax分頁
- barcode條形碼
- excel
- 發郵件
- 漢字轉全拼和首字母,支持帶聲調
- 中文分詞
- 瀏覽器useragent解析
- freelog項目實戰
- 需求分析
- 數據庫設計
- 編碼實踐
- 前端實現
- rest接口
- 文章發布
- 文件上傳
- 視頻播放
- 音樂播放
- 圖片幻燈片展示
- 注冊和登錄
- 個人資料更新
- 第三方登錄的使用
- 后臺
- 微信的開發
- 首頁及個人主頁
- 列表
- 歸檔
- 搜索
- 分頁
- 總結經驗
- 自我提升
- 進行小項目的鍛煉
- 對現有輪子的重構和移植
- 寫技術博客
- 制作視頻教程
- 學習PHP的知識和新特性
- 和同行直接溝通、交流
- 學好英語,走向國際
- 如何參與
- 瀏覽官網和極思維還有看云
- 回答ThinkPHP新手的問題
- 嘗試發現ThinkPHP的bug,告訴官方人員或者push request
- 開發能提高效率的ThinkPHP工具
- 嘗試翻譯官方文檔
- 幫新手入門
- 創造基于ThinkPHP的產品,進行連帶推廣
- 展望未來
- OneThink
- ThinkPHP4
- 附錄