通常在資料查詢後都會對資料集進行分頁操作,thinkphp也提供了分頁類來對資料分頁提供支援。 下面是資料分頁的兩種示例。
$user = m('user'); // 例項化user物件
$count = $user->where('status=1')->count();// 查詢滿足要求的總記錄數
$page = new \think\page($count,25);// 例項化分頁類 傳入總記錄數和每頁顯示的記錄數(25)
$show = $page->show();// 分頁顯示輸出
// 進行分頁資料查詢 注意limit方法的引數要使用page類的屬性
$list = $user->where('status=1')->order('create_time')->limit($page->firstrow.','.$page->listrows)->select();
$this->assign('list',$list);// 賦值資料集
$this->assign('page',$show);// 賦值分頁輸出
$this->display(); // 輸出模板
$user = m('user'); // 例項化user物件
// 進行分頁資料查詢 注意page方法的引數的前面部分是當前的頁數使用 $_get[p]獲取
$list = $user->where('status=1')->order('create_time')->page($_get['p'].',25')->select();
$this->assign('list',$list);// 賦值資料集
$count = $user->where('status=1')->count();// 查詢滿足要求的總記錄數
$page = new \think\page($count,25);// 例項化分頁類 傳入總記錄數和每頁顯示的記錄數
$show = $page->show();// 分頁顯示輸出
$this->assign('page',$show);// 賦值分頁輸出
$this->display(); // 輸出模板
如果是post方式查詢,如何確保分頁之後能夠保持原先的查詢條件呢,我們可以給分頁類傳入引數,方法是給分頁類的parameter屬性賦值
$count = $user->where($map)->count();// 查詢滿足要求的總記錄數
$page = new \think\page($count,25);// 例項化分頁類 傳入總記錄數和每頁顯示的記錄數
//分頁跳轉的時候保證查詢條件
foreach($map as $key=>$val)
$show = $page->show();// 分頁顯示輸出
我們可以對輸出的分頁樣式進行定製,分頁類page提供了乙個setconfig方法來修改預設的一些設定。例如:
$page->setconfig('header','個會員');
setconfig方法支援的屬性包括:
屬性描述
header
頭部描述資訊,預設值 「共 %total_row% 條記錄」
prev
next
first
第一頁描述資訊,預設值 「1...」
last
最後一頁描述資訊,預設值 「...%total_page%」
theme
分頁主題描述資訊,包括了上面所有元素的組合 ,設定該屬性可以改變分頁的各個單元的顯示位置,預設值是 "%first% %up_page% %link_page% %down_page% %end%"
其中,顯示位置的對應的關係為:
位置說明
%first%
表示第一頁的鏈結顯示
%up_page%
%link_page%
表示分頁的鏈結顯示
%down_page%
%end%
表示最後一頁的鏈結顯示
thinkphp 簡單分頁
1 首先,我們得建立乙個用於分頁測試的資料庫 test。sql 如下。php create table test id int 10 unsigned not null auto increment,name char 100 not null,content varchar 300 not nul...
ThinkPHP分頁例項
控制器中的 db m cost where 查詢條件 count db where where count pagecount 20 page new think page count pagecount page parameter row 此處的row是陣列,為了傳遞查詢條件 page setc...
ThinkPHP分頁例項
很多人初學thinkphp時,不太熟悉thinkphp的分頁使用方法,現在將自己整理的分頁方法分享下,有需要的朋友可以看看。控制器中的 db m cost where 查詢條件 count db where where count pagecount 20 page new think page c...