第一種:利用Page類和limit方法
成都創(chuàng)新互聯(lián)公司專注于桓仁企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,成都做商城網(wǎng)站。桓仁網(wǎng)站建設(shè)公司,為桓仁等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
$User = M('User'); // 實(shí)例化User對(duì)象
import('ORG.Util.Page');// 導(dǎo)入分頁(yè)類
$count = $User-where('status=1')-count();// 查詢滿足要求的總記錄數(shù)
$Page = new Page($count,25);// 實(shí)例化分頁(yè)類 傳入總記錄數(shù)和每頁(yè)顯示的記錄數(shù)
$show = $Page-show();// 分頁(yè)顯示輸出
// 進(jìn)行分頁(yè)數(shù)據(jù)查詢 注意limit方法的參數(shù)要使用Page類的屬性
$list = $User-where('status=1')-order('create_time')-limit($Page-firstRow.','.$Page-listRows)-select();
$this-assign('list',$list);// 賦值數(shù)據(jù)集
$this-assign('page',$show);// 賦值分頁(yè)輸出
$this-display(); // 輸出模板
第二種:分頁(yè)類和page方法的實(shí)現(xiàn)
$User = M('User'); // 實(shí)例化User對(duì)象
// 進(jìn)行分頁(yè)數(shù)據(jù)查詢 注意page方法的參數(shù)的前面部分是當(dāng)前的頁(yè)數(shù)使用 $_GET[p]獲取
$list = $User-where('status=1')-order('create_time')-page($_GET['p'].',25')-select();
$this-assign('list',$list);// 賦值數(shù)據(jù)集
import(“ORG.Util.Page”);// 導(dǎo)入分頁(yè)類
$count = $User-where('status=1')-count();// 查詢滿足要求的總記錄數(shù)
$Page = new Page($count,25);// 實(shí)例化分頁(yè)類 傳入總記錄數(shù)和每頁(yè)顯示的記錄數(shù)
$show = $Page-show();// 分頁(yè)顯示輸出
$this-assign('page',$show);// 賦值分頁(yè)輸出
$this-display(); // 輸出模板
帶入查詢條件
如果是POST方式查詢,如何確保分頁(yè)之后能夠保持原先的查詢條件呢,我們可以給分頁(yè)類傳入?yún)?shù),方法是給分頁(yè)類的parameter屬性賦值:
import('ORG.Util.Page');// 導(dǎo)入分頁(yè)類
$mapcount = $User-where($map)-count();// 查詢滿足要求的總記錄數(shù)
$Page = new Page($count,25);// 實(shí)例化分頁(yè)類 傳入總記錄數(shù)和每頁(yè)顯示的記錄數(shù)
//分頁(yè)跳轉(zhuǎn)的時(shí)候保證查詢條件
foreach($map as $key=$val) {
$Page-parameter .= "$key=".urlencode($val).'';
}
$show = $Page-show();// 分頁(yè)顯示輸出
ThinkPHP中的Page類在ThinkPHP/Extend/Library/ORG/Util/Page.class.php中,所以使用前要引入Page類:
復(fù)制代碼
代碼如下:
import('ORG.Util.Page');
//Page類的引入
$db
=
M('abc');//實(shí)例化數(shù)據(jù)表abc
$where
=
array(
'id'='2';
);//條件語(yǔ)句$where,例表中字段id的值為2
$count
=
$db-where($where)-count();//獲取符合條件的數(shù)據(jù)總數(shù)count
$page
=
new
Page($count,
10);//實(shí)例化page類,傳入數(shù)據(jù)總數(shù)和每頁(yè)顯示10條內(nèi)容
$limit
=
$page-firstRow
.
','
.
$page-listRows;//每頁(yè)的數(shù)據(jù)數(shù)和內(nèi)容$limit
$result
=$db-where($where))-limit($limit)-select();//分頁(yè)查詢結(jié)果
$this-result
=
$result;//賦值
$this-show
=
$page-show();//獲取分頁(yè)的底部信息
以上代碼是分頁(yè)類實(shí)現(xiàn)的基本語(yǔ)句,當(dāng)然喜歡使用原生sql語(yǔ)句的朋友也可以配合原生sql語(yǔ)句實(shí)現(xiàn)查詢分頁(yè):
復(fù)制代碼
代碼如下:
import('ORG.Util.Page');
//Page類的引入
$db
=
M('abc');//實(shí)例化數(shù)據(jù)表abc
$where
=
array(
'id'='2';
);//條件語(yǔ)句$where,例表中字段id的值為2
$count
=
$db-where($where)-count();//獲取符合條件的數(shù)據(jù)總數(shù)count
$page
=
new
Page($count,
10);//實(shí)例化page類,傳入數(shù)據(jù)總數(shù)和每頁(yè)顯示10條內(nèi)容
$Modle
=
new
Model();//實(shí)例化新數(shù)據(jù)模型
$sql
=
'select
id,name
from
abc
where
'.$where.'
limit
'.$page-firstRow.','.$page-listRows;//sql語(yǔ)句
$result
=
$Modle-query($sql);//執(zhí)行sql語(yǔ)句
$this-result
=
$result
$this-show=$page-show();
當(dāng)然,分布查詢獲取的內(nèi)容也可以先對(duì)查詢完的數(shù)據(jù)進(jìn)行處理再賦值,比如
復(fù)制代碼
代碼如下:
...
$result
=$db-where($where))-limit($limit)-select();//分頁(yè)查詢結(jié)果
$res
=
abc($result);//abc方法(自定義方法或php函數(shù))對(duì)結(jié)果$result進(jìn)行數(shù)據(jù)排序或重組處理等
$this-result
=
$res;//賦值
你的原本代碼:
function accomplish_indent(){
$User = M('order'); // 實(shí)例化User對(duì)象
$count = $User-where('status=0')-count();// 查詢滿足要求的總記錄數(shù)
$Page = new \Think\Page($count5);// 實(shí)例化分頁(yè)類 傳入總記錄數(shù)和每頁(yè)顯示的記錄數(shù)(5)
$show = $Page-show();// 分頁(yè)顯示輸出
// 進(jìn)行分頁(yè)數(shù)據(jù)查詢 注意limit方法的參數(shù)要使用Page類的屬性
$list = $User-where('status=0')-order('add_time')-limit($Page-firstRow.''.$Page-listRows)-select();
這是我以前學(xué)php寫的 哈哈 你可以看看
?php
/**
* 分頁(yè)類
* 1.實(shí)例化分頁(yè)類,例:mypage new page("SQL語(yǔ)句","每頁(yè)顯示記錄條數(shù)");
* 2.調(diào)用類中的 genpage() 方法,返回分頁(yè)生成的SQL語(yǔ)句;
* 3.執(zhí)行新生成的SQL語(yǔ)句;
* 4.調(diào)用 showpage_1() 或 showpage_2() 方法顯示分頁(yè)的翻頁(yè)(可也以自定義返回顯示的方式)
* 實(shí)例:
* $page = new page("select * from ly",2);
* $sql=$page-genpage();
* $ar=mysql_query($sql);
* while($nu=mysql_fetch_array($ar)){
* echo $nu[0].'br';
* }
* $page-showpage_2();
*/
class page{
private $totalnum; //總記錄數(shù)
private $pagecount; //總頁(yè)數(shù)
private $f_pagenum; //當(dāng)前頁(yè)的第一條記錄
private $sql;
private $page; //當(dāng)前頁(yè)
private $page_size; //每頁(yè)顯示數(shù)量
private $pagesql;
private $total;
private $url; //當(dāng)前頁(yè)url
private $beforepage; //上一頁(yè)
private $nextpage; //下一頁(yè)
function __construct($sql,$page_size){ //傳入sql語(yǔ)句和每頁(yè)顯示條數(shù)
$this-sql=$sql;
$this-page_size=$page_size;
$this-page=is_numeric($_GET[page]);
$this-page=substr($this-page,0,10);
$this-page=mysql_real_escape_string($this-page);
if(ereg("^[0-9]*[1-9][0-9]*$",$this-page)!=1){
$this-page=1;
}
if($this-page99999999){
$this-page=1;
}
}
function genpage(){
//
// if(!$this-page){
// $this-page=1;
// }
$this-pagesql = strstr($this-sqlcz," from ");
$this-pagesql = "select count(*) as ids ".$this-pagesql;
$this-total=mysql_query($this-sql);
$this-totalnum=mysql_num_rows($this-total); //總記錄數(shù)
$this-pagecount=ceil($this-totalnum/$this-page_size); //總頁(yè)數(shù)
$this-f_pagenum=$this-page_size*($this-page-1); //當(dāng)前頁(yè)的第一條記錄
$this-sql .=" limit $this-f_pagenum,$this-page_size ";
return $this-sql;
}
//替換url中的page的頁(yè)數(shù)
function replace_page($npage){
$this-url=$_SERVER["REQUEST_URI"]; //獲取當(dāng)前url
$check = strpos($this-url, 'page='); //判斷url中是否有page分頁(yè)參數(shù)
if($check==false){ //如果沒有page分頁(yè)參數(shù)
if(strpos($this-url, '?')==false){ //判斷是否url是否有“ ?”號(hào),
$this-url=$this-url."?page=1"; //如果沒有“ ?”號(hào),說(shuō)明之前url沒有參數(shù)
}else{
$this-url=$this-url."page=1"; //如果有“ ?”號(hào),說(shuō)明有參數(shù),追加參數(shù)要改用符號(hào)
}
}
$npage="page=".$npage; //跳轉(zhuǎn)到的頁(yè)
$zz='[page=\d*]';
return preg_replace($zz,$npage,$this-url); //正則替換掉url中的page參數(shù),實(shí)現(xiàn)分頁(yè)
}
//顯示總頁(yè)數(shù)
function show_all_page(){
return $this-pagecount;
}
//顯示當(dāng)前頁(yè)
function show_current_page(){
return $this-page;
}
//顯示首頁(yè)和上一頁(yè)
function show_firstAndup_page(){
if($this-page==1){
return "首頁(yè)|上一頁(yè)";
}else{
$this-beforepage=$this-page-1;
return "a href=".$this-replace_page(1)."首頁(yè)/a|a href=".$this-replace_page($this-beforepage)."上一頁(yè)/a";
}
}
//顯示下一頁(yè)和最后頁(yè)
function show_lastAnddown_page(){
if(($this-page==$this-pagecount)||($this-pagecount==0)){
return "下一頁(yè)|尾頁(yè)";
}else{
$this-nextpage=$this-page+1;
return "a href=".$this-replace_page($this-nextpage)."下一頁(yè)/a|a href=".$this-replace_page($this-pagecount)."尾頁(yè)/a";
}
}
//循環(huán)顯示頁(yè)數(shù)
function show_loop_page(){
$shownum =10/2;
$startpage = ($this-page$shownum)?$this-page-$shownum:1;
$endpage = ($this-page+$shownum=$this-pagecount)?$this-page+$shownum:$this-pagecount;
for($i=$startpage;$i=$endpage;$i++)
{
if($i==$this-page) {
$a= " b[".($i)."]/b ";
}else{
$a= " a href=".$this-replace_page($i)."".($i)."/a ";
}
$b=$b.$a;
}
return $b;
}
//整體顯示第一種方案
function showpage_1(){
return "共".$this-show_all_page()."頁(yè)nbsp"."當(dāng)前第".$this-show_current_page()."頁(yè)nbsp".$this-show_firstAndup_page()."nbsp"
.$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();
}
//整體顯示第二種方案
function showpage_2(){
return $this-show_firstAndup_page()."nbsp".$this-show_loop_page()."nbsp".$this-show_lastAnddown_page();
}
}
?
網(wǎng)頁(yè)標(biāo)題:php漂亮的數(shù)據(jù)分頁(yè)類 php分頁(yè)函數(shù)
新聞來(lái)源:http://jinyejixie.com/article12/dodpjgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、、網(wǎng)站內(nèi)鏈、服務(wù)器托管、網(wǎng)站改版、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)