php分頁類與使用方法,php如何實現分頁功能

本文目錄一覽:

ThinkPHP使用心得分享-分頁類Page的用法

ThinkPHP中的Page類在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page類:

複製代碼

代碼如下:

import(‘ORG.Util.Page’);

//Page類的引入

$db

=

M(‘abc’);//實例化數據表abc

$where

=

array(

‘id’=’2’;

);//條件語句$where,例表中欄位id的值為2

$count

=

$db-where($where)-count();//獲取符合條件的數據總數count

$page

=

new

Page($count,

10);//實例化page類,傳入數據總數和每頁顯示10條內容

$limit

=

$page-firstRow

.

‘,’

.

$page-listRows;//每頁的數據數和內容$limit

$result

=$db-where($where))-limit($limit)-select();//分頁查詢結果

$this-result

=

$result;//賦值

$this-show

=

$page-show();//獲取分頁的底部信息

以上代碼是分頁類實現的基本語句,當然喜歡使用原生sql語句的朋友也可以配合原生sql語句實現查詢分頁:

複製代碼

代碼如下:

import(‘ORG.Util.Page’);

//Page類的引入

$db

=

M(‘abc’);//實例化數據表abc

$where

=

array(

‘id’=’2’;

);//條件語句$where,例表中欄位id的值為2

$count

=

$db-where($where)-count();//獲取符合條件的數據總數count

$page

=

new

Page($count,

10);//實例化page類,傳入數據總數和每頁顯示10條內容

$Modle

=

new

Model();//實例化新數據模型

$sql

=

‘select

id,name

from

abc

where

‘.$where.’

limit

‘.$page-firstRow.’,’.$page-listRows;//sql語句

$result

=

$Modle-query($sql);//執行sql語句

$this-result

=

$result

$this-show=$page-show();

當然,分布查詢獲取的內容也可以先對查詢完的數據進行處理再賦值,比如

複製代碼

代碼如下:

$result

=$db-where($where))-limit($limit)-select();//分頁查詢結果

$res

=

abc($result);//abc方法(自定義方法或php函數)對結果$result進行數據排序或重組處理等

$this-result

=

$res;//賦值

php分頁功能怎麼實現

php本身是沒有分頁概念的,分頁是URL傳參,然後通過mysql查詢語句到資料庫獲取數據,然後實現的分頁,url上的參數,通過PHP的$_GET都是可以獲取到的。

現在市面上的PHP框架基本都有PHP分頁類,參照文檔直接調用就好了,如果想看實現過程,可以去下載一個TP框架,然後打開裡面的分頁類查看裡面的源代碼。

php分頁使用方法

class Page

{

// 起始行數

public $firstRow ;

// 列表每頁顯示行數

public $listRows ;

// 頁數跳轉時要帶的參數

public $parameter ;

// 分頁總頁面數

protected $totalPages ;

// 總行數

protected $totalRows ;

// 當前頁數

protected $nowPage ;

// 分頁的欄的總頁數

protected $coolPages ;

// 分頁欄每頁顯示的頁數

protected $rollPage ;

// 分頁參數

public $p;

// 分頁顯示定製

protected $config = array(

‘header’=’條記錄’,

‘prev’=’上一頁’,

‘next’=’下一頁’,

‘first’=’第一頁’,

‘last’=’最後一頁’,

‘theme’=’ %totalRow% %header% %nowPage%/%totalPage% 頁 %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%’

);

/**

+———————————————————-

* 架構函數

+———————————————————-

* @access public

+———————————————————-

* @param array $totalRows 總的記錄數

* @param array $listRows 每頁顯示記錄數

* @param array $parameter 分頁跳轉的參數

+———————————————————-

*/

public function __construct($totalRows,$listRows,$p=’p’,$rollPage=5,$parameter=”) {

$this-p=$p;

$this-totalRows = $totalRows;

$this-parameter = $parameter;

$this-rollPage = $rollPage;

$this-listRows = !empty($listRows)?$listRows:15;

$this-totalPages = ceil($this-totalRows/$this-listRows); //總頁數

$this-coolPages = ceil($this-totalPages/$this-rollPage);

$this-nowPage = !empty($_GET[$this-p])?$_GET[$this-p]:1;

if(!empty($this-totalPages) $this-nowPage$this-totalPages) {

$this-nowPage = $this-totalPages;

}

$this-firstRow = $this-listRows*($this-nowPage-1);

}

public function setConfig($name,$value) {

if(isset($this-config[$name])) {

$this-config[$name] = $value;

}

}

/**

+———————————————————-

* 分頁顯示輸出

+———————————————————-

* @access public

+———————————————————-

*/

public function show() {

if(0 == $this-totalRows) return ”;

$nowCoolPage = ceil($this-nowPage/$this-rollPage);

$url = $_SERVER[‘REQUEST_URI’].(strpos($_SERVER[‘REQUEST_URI’],’?’)?”:”?”).$this-parameter;

$parse = parse_url($url);

if(isset($parse[‘query’])) {

parse_str($parse[‘query’],$params);

unset($params[$this-p]);

$url = $parse[‘path’].’?’.http_build_query($params);

}

//上下翻頁字元串

$upRow = $this-nowPage-1;

$downRow = $this-nowPage+1;

if ($upRow0){

$upPage=”a href='”.$url.””.$this-p.”=$upRow'”.$this-config[‘prev’].”/a”;

}else{

$upPage=””;

}

if ($downRow = $this-totalPages){

$downPage=”a href='”.$url.””.$this-p.”=$downRow'”.$this-config[‘next’].”/a”;

}else{

$downPage=””;

}

//

if($nowCoolPage == 1){

$theFirst = “”;

$prePage = “”;

}else{

$preRow = $this-nowPage-$this-rollPage;

$prePage = “a href='”.$url.””.$this-p.”=$preRow’ 上”.$this-rollPage.”頁/a”;

$theFirst = “a href='”.$url.””.$this-p.”=1′ “.$this-config[‘first’].”/a”;

}

if($nowCoolPage == $this-coolPages){

$nextPage = “”;

$theEnd=””;

}else{

$nextRow = $this-nowPage+$this-rollPage;

$theEndRow = $this-totalPages;

$nextPage = “a href='”.$url.””.$this-p.”=$nextRow’ 下”.$this-rollPage.”頁/a”;

$theEnd = “a href='”.$url.””.$this-p.”=$theEndRow’ “.$this-config[‘last’].”/a”;

}

// 1 2 3 4 5

$linkPage = “”;

for($i=1;$i=$this-rollPage;$i++){

$page=($nowCoolPage-1)*$this-rollPage+$i;

if($page!=$this-nowPage){

if($page=$this-totalPages){

$linkPage .= ” a href='”.$url.””.$this-p.”=$page’ “.$page.” /a”;

}else{

break;

}

}else{

if($this-totalPages != 1){

$linkPage .= ” span class=’current'”.$page.”/span”;

}

}

}

$pageStr = str_replace(

array(‘%header%’,’%nowPage%’,’%totalRow%’,’%totalPage%’,’%upPage%’,’%downPage%’,’%first%’,’%prePage%’,’%linkPage%’,’%nextPage%’,’%end%’),

array($this-config[‘header’],$this-nowPage,$this-totalRows,$this-totalPages,$upPage,$downPage,$theFirst,$prePage,$linkPage,$nextPage,$theEnd),$this-config[‘theme’]);

return $pageStr;

}

}

具體調用方法

$count是總記錄數

15是當前顯示數

$p=new Page($count,15);

$p-setConfig(‘header’, ‘個項目’); //可以設置變數名稱,即輸出的名稱

$page=$p-show(); //生成html page分頁html

總的流程是

先讀取出總的記錄數

,然後調用上面的分頁類

在分頁類裡面輸出2個變數一個是當前分頁讀取數據的開始,和偏移量

limit($p-listRows,$p-firstRow)

然後執行分頁sql語句

$page=$p-show();

page就是標準分頁html

Thinkphp數組分頁如何操作

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

$User = M(‘User’); // 實例化User對象

import(‘ORG.Util.Page’);// 導入分頁類

$count = $User-where(‘status=1’)-count();// 查詢滿足要求的總記錄數

$Page = new Page($count,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);// 賦值數據集

import(「ORG.Util.Page」);// 導入分頁類

$count = $User-where(‘status=1’)-count();// 查詢滿足要求的總記錄數

$Page = new Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數

$show = $Page-show();// 分頁顯示輸出

$this-assign(‘page’,$show);// 賦值分頁輸出

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

帶入查詢條件

如果是POST方式查詢,如何確保分頁之後能夠保持原先的查詢條件呢,我們可以給分頁類傳入參數,方法是給分頁類的parameter屬性賦值:

import(‘ORG.Util.Page’);// 導入分頁類

$mapcount = $User-where($map)-count();// 查詢滿足要求的總記錄數

$Page = new Page($count,25);// 實例化分頁類 傳入總記錄數和每頁顯示的記錄數

//分頁跳轉的時候保證查詢條件

foreach($map as $key=$val) {

$Page-parameter .= “$key=”.urlencode($val).”;

}

$show = $Page-show();// 分頁顯示輸出

原創文章,作者:BTTL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141234.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BTTL的頭像BTTL
上一篇 2024-10-04 00:24
下一篇 2024-10-04 00:24

相關推薦

  • Python中init方法的作用及使用方法

    Python中的init方法是一個類的構造函數,在創建對象時被調用。在本篇文章中,我們將從多個方面詳細討論init方法的作用,使用方法以及注意點。 一、定義init方法 在Pyth…

    編程 2025-04-29
  • 如何實現圖像粘貼到蒙版

    本文將從多個方面介紹圖像粘貼到蒙版的實現方法。 一、創建蒙版 首先,在HTML中創建一個蒙版元素,用於接收要粘貼的圖片。 <div id=”mask” style=”widt…

    編程 2025-04-29
  • Python符號定義和使用方法

    本文將從多個方面介紹Python符號的定義和使用方法,涉及注釋、變數、運算符、條件語句和循環等多個方面。 一、注釋 1、單行注釋 # 這是一條單行注釋 2、多行注釋 “”” 這是一…

    編程 2025-04-29
  • Python下載到桌面圖標使用方法用法介紹

    Python是一種高級編程語言,非常適合初學者,同時也深受老手喜愛。在Python中,如果我們想要將某個程序下載到桌面上,需要注意一些細節。本文將從多個方面對Python下載到桌面…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • Python匿名變數的使用方法

    Python中的匿名變數是指使用「_」來代替變數名的特殊變數。這篇文章將從多個方面介紹匿名變數的使用方法。 一、作為佔位符 匿名變數通常用作佔位符,用於代替一個不需要使用的變數。例…

    編程 2025-04-29
  • 百度地區熱力圖的介紹和使用方法

    本文將詳細介紹百度地區熱力圖的使用方法和相關知識。 一、什麼是百度地區熱力圖 百度地區熱力圖是一種用於展示區域內某種數據分布情況的地圖呈現方式。它通過一張地圖上不同區域的顏色深淺,…

    編程 2025-04-29
  • Matlab中addpath的使用方法

    addpath函數是Matlab中的一個非常常用的函數,它可以在Matlab環境中增加一個或者多個文件夾的路徑,使得Matlab可以在需要時自動搜索到這些文件夾中的函數。因此,學會…

    編程 2025-04-29
  • Django ORM如何實現或的條件查詢

    在我們使用Django進行資料庫操作的時候,查詢條件往往不止一個,一個好的查詢語句需要考慮我們的查詢要求以及業務場景。在實際工作中,我們經常需要使用或的條件進行查詢,本文將詳細介紹…

    編程 2025-04-29
  • Java和Python哪個功能更好

    對於Java和Python這兩種編程語言,究竟哪一種更好?這個問題並沒有一個簡單的答案。下面我將從多個方面來對Java和Python進行比較,幫助讀者了解它們的優勢和劣勢,以便選擇…

    編程 2025-04-29

發表回復

登錄後才能評論