ThinkPHP分頁的實現_PHP教程

來源:互聯網
上載者:User
分頁類需要和查詢相結合,我們可以使用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(); // 輸出模板


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










[ {$vo.create_time|date='Y-m-d H:i:s',###} ] {$vo.title}

{$page}

http://www.bkjia.com/PHPjc/477453.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/477453.htmlTechArticle分頁類需要和查詢相結合,我們可以使用ThinkPHP內建的limit方法或者page方法,目的就是為了擷取當前分頁的資料(也有先擷取完整資料然後...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.