天天看點

thinkphp分頁代碼Page類和limit講解

通常在資料查詢後都會對資料集進行分頁操作,ThinkPHP也提供了分頁類來對資料分頁提供支援。 下面是資料分頁的兩種示例。

第一種:利用Page類和limit方法

            $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(); // 輸出模闆

第二種:分頁類和page方法的實作

            $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) {

            $Page->parameter[$key] = urlencode($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%     表示最後一頁的連結顯示

除了改變顯示資訊外,你還可以使用樣式來定義分頁的顯示效果。 這些樣式class包括:first(第一頁)、prev(上一頁)、next(下一頁)、end(最後一頁)、num(其他頁的數字)、current(目前頁)。