程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> ThinkPHP分頁的實現

ThinkPHP分頁的實現

編輯:關於PHP編程

分頁類需要和查詢相結合,我們可以使用ThinkPHP自帶的limit方法或者page方法,目的就是為了獲取當前分頁的數據(也有先獲取完整數據然後前端分頁顯示的方法,不在本文描述內容中,也不建議)。使用limit方法或者page方法是和數據庫類型無關的。
我們首先在數據庫裡面創建一個think_datas數據表用於測試:

    CREATE TABLE IF NOT EXISTS `think_data` (
      `id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
      `title` varchar(255) NOT NULL,
      `content` varchar(255) NOT NULL,
      `create_time` int(11) unsigned NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ; 

 

 

  要使用分頁查詢,一般來說需要進行兩次查詢,即第一次查詢得到滿足條件的總數據量,然後第二次查詢當前分頁的數據,這樣做的作用是告訴分頁類當前的數據總數,以便計算生成的總頁數(如果你的顯示只是需要上下翻頁的話,其實總數查詢可以省略或者進行緩存)。
一個標准的分頁使用示例如下:


    $Data = M('Data'); // 實例化Data數據對象

    import('ORG.Util.Page');// 導入分頁類
    $count      = $Data->where($map)->count();// 查詢滿足要求的總記錄數 $map表示查詢條件
    $Page       = new Page($count);// 實例化分頁類 傳入總記錄數
    $show       = $Page->show();// 分頁顯示輸出
    // 進行分頁數據查詢
    $list = $Data->where($map)->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
    $this->assign('list',$list);// 賦值數據集
    $this->assign('page',$show);// 賦值分頁輸出

    $this->display(); // 輸出模板

 

 

 

如果沒有任何數據的話,分頁顯示為空白。所以在進行測試之前,請確保你的數據表裡面有一定的數據,否則可能看不到分頁的效果。如果使用page方法查詢的話,則成:可以改

    $Data = M('Data'); // 實例化Data數據對象
    import('ORG.Util.Page');// 導入分頁類
    $count      = $Data->where($map)->count();// 查詢滿足要求的總記錄數
    $Page       = new Page($count);// 實例化分頁類 傳入總記錄數
    // 進行分頁數據查詢 注意page方法的參數的前面部分是當前的頁數使用 $_GET[p]獲取
    $nowPage = isset($_GET['p'])?$_GET['p']:1;
    $list = $Data->where($map)->order('create_time')->page($nowPage.','.$Page->listRows)->select();
    $show       = $Page->show();// 分頁顯示輸出
    $this->assign('page',$show);// 賦值分頁輸出
    $this->assign('list',$list);// 賦值數據集
    $this->display(); // 輸出模板


然後,我們在模板中添加分頁輸出變量即可:

 


<table cellpadding=3 cellspacing=5>
<volist name="list" id="vo">
<tr>
<td >[ {$vo.create_time|date='Y-m-d H:i:s',###} ] {$vo.title} </td>
</tr>
</volist>
<tr>       
</tr>
</table>
<div class="result page">{$page}</div>

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved