一個(gè)比較簡(jiǎn)單的PHP 分頁(yè)分組類(lèi)
<?php
class mysqlPager{
var $pagePerNum=5;//每頁(yè)顯示數(shù)據(jù)項(xiàng)數(shù)
var $pagePerGroup=5;//每分頁(yè)組中頁(yè)數(shù)
var $curPage=0;//當(dāng)前頁(yè),Defualt 第一頁(yè)
var $totalPage=0;//總頁(yè)數(shù)
var $totalNum=0;//數(shù)據(jù)項(xiàng)總數(shù)
var $curPageGroup=0;//當(dāng)前分頁(yè)組
var $curPageUrl="";//當(dāng)前用到分頁(yè)的 URL
var $customStyle="";//自定義風(fēng)格
var $pageQuerySql="";
function mysqlPager(){//構(gòu)造函數(shù) PHP4
}
/**
* 初始化所有變量
*/
function InitAllVar($totalNum,$pagePerGroup,$curPageUrl,$curPage=1,$curPageGroup=1)
{
$this->totalNum=$totalNum;
$this->pagePerGroup=$pagePerGroup;
$this->curPageUrl=$curPageUrl;
$this->curPage=$curPage;
$this->curPageGroup=$curPageGroup;
}
/**
* 設(shè)置當(dāng)前頁(yè)變量
*
* @param 數(shù)字 $curPage
*/
function setCurPage($curPage)
{
$this->curPage=$curPage;
}
/**
* 設(shè)置當(dāng)前分頁(yè)組變量
*
* @param mixed $curPageGroup
*/
function setCurPageGroup($curPageGroup)
{
$this->curPageGroup=$curPageGroup;
}
/**
* 設(shè)置當(dāng)前用到分布類(lèi)的URL
* $curPageUrl string
*/
function setCurPageUrl($curPageUrl)
{
$this->curPageUrl=$curPageUrl;
}
/**
* 獲取所有
*
* @param 數(shù)字 $totalNum
* @param 數(shù)字 $curPage
* @return float
*/
function getTotalPage($totalNum,$curPage=0)
{
return $this->totalPage=ceil($totalNum/$this->pagePerNum);
}
/**
* 設(shè)置用戶(hù)自定義風(fēng)格
*
* @param mixed $customStyle
*/
function setCustomStyle($customStyle)
{
$this->customStyle=$customStyle;
}
/**
* 設(shè)置用戶(hù)自定義風(fēng)格返回字符串
*
*
* @param mixed $pagerString
*/
function setCustomStyleString($pagerString)
{
return $styleString="<span class=".$customStyle.">".$pagerString."</span>";
}
/**
* 輸出導(dǎo)航頁(yè)信息 可以不用參數(shù),但是在使用前一定要設(shè)置相應(yīng)的變量
*
* @param mixed $curPageGroup
* @param mixed $curPage
* @param mixed $curPageUrl
*/
function showNavPager($curPageGroup=0,$curPage=0,$curPageUrl=0)
{
if($curPageGroup)
{
$this->curPageGroup=$curPageGroup;
}
if($curPage)
{
$this->curPage=$curPage;
}
if($curPageUrl)
{
$this->curPageUrl=$curPageUrl;
}
$rtnString="";
//判斷變量是否以經(jīng)初始化
if($this->curPageGroup && $this->curPageUrl && $this->totalNum && $this->curPage)
{
$this->totalPage=$this->getTotalPage($this->totalNum);
if($this->curPage==1)
$this->curPage=($this->curPageGroup-1)*$this->pagePerGroup+1;
if($this->curPageGroup!=1)
{
$prePageGroup=$this->curPageGroup-1;
$rtnString.="<a href=".$this->curPageUrl."?cpg=$prePageGroup >".$this->setCustomStyleString("<<")."</a> ";
}
for($i=1;$i<=$this->pagePerGroup;$i++)
{
$curPageNum=($this->curPageGroup-1)*$this->pagePerGroup+$i;
if($curPageNum<=$this->totalPage){
if($curPageNum==$this->curPage)
{
$rtnString.=" ".$this->setCustomStyleString($curPageNum);
}else
{
$rtnString.=" <a href=$this->curPageUrl?cpg={$this->curPageGroup}&cp=$curPageNum >";
$rtnString.=$this->setCustomStyleString($curPageNum)."</a>";
}
}
}
if($this->curPageGroup<ceil($this->totalPage/$this->pagePerGroup)-1)
{
$nextPageGroup=$this->curPageGroup+1;
$rtnString.=" <a href=$this->curPageUrl?cpg=$nextPageGroup >".$this->setCustomStyleString(">>")."</a>";
}
$this->pageQuerySql=" limit ".(($this->curPage-1)*$this->pagePerNum).",".$this->pagePerNum;
}
else
{
$rtnString="錯(cuò)誤:變量未初始化!";
}
return $rtnString;
}
/**
* 得到完整的查詢(xún)MYSQL的Sql語(yǔ)句
*
* @param mixed $sql
*/
function getQuerySqlStr($sql)
{
$allsql=$sql.$this->pageQuerySql;
return $allsql;
}
/**
* 設(shè)置每頁(yè)有多少數(shù)據(jù)項(xiàng)
*
* @param INT $num
*/
function setPagePerNum($num)
{
$this->pagePerNum=$num;
}
}
?>
使用方法:
$curPage=$_GET['cp'];
$curPageGroup=$_GET['cpg']
if($curPage=="")
$curPage=1;
if($curPageGroup=="")
$curPageGroup=1;
//都是從1開(kāi)始,之前要對(duì)傳入的數(shù)據(jù)進(jìn)行驗(yàn)證,防注入
//。。。
$pager=new MysqlPager();
$pager->initAllVar(...)
$pager->showNavPager();
//后面的SQL可以是任意的輸出
$sql="select id form dbname ";
$querysql=$pager->getQuerySqlStr($sql)
//以后用$querysql 查詢(xún)數(shù)據(jù)庫(kù)就可以得到相應(yīng)的結(jié)果集了
相關(guān)文章
解決laravel 表單提交-POST 異常的問(wèn)題
今天小編就為大家分享一篇解決laravel 表單提交-POST 異常的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
PHP中關(guān)于PDO數(shù)據(jù)訪問(wèn)抽象層的功能操作實(shí)例
下面小編就為大家?guī)?lái)一篇PHP中關(guān)于PDO數(shù)據(jù)訪問(wèn)抽象層的功能操作實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
jQuery向下滾動(dòng)即時(shí)加載內(nèi)容實(shí)現(xiàn)的瀑布流效果
下拉滾動(dòng)條或鼠標(biāo)滾輪滾動(dòng)到頁(yè)面底部時(shí), 動(dòng)態(tài)即時(shí)加載新內(nèi)容,通過(guò)本文給大家介紹jQuery向下滾動(dòng)即時(shí)加載內(nèi)容實(shí)現(xiàn)的瀑布流效果,感興趣的朋友參考下2016-01-01
Zend Framework入門(mén)應(yīng)用實(shí)例詳解
這篇文章主要介紹了Zend Framework入門(mén)應(yīng)用,結(jié)合實(shí)例形式詳細(xì)講述了Zend Framework應(yīng)用的創(chuàng)建步驟、相關(guān)命令、控制器及視圖文件代碼實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12
四個(gè)常見(jiàn)html網(wǎng)頁(yè)亂碼問(wèn)題及解決辦法
當(dāng)我們做網(wǎng)頁(yè)時(shí),經(jīng)常會(huì)遇到網(wǎng)頁(yè)中文亂碼,那么此問(wèn)題如何解決呢,下面腳本之家的小編給大家分享四個(gè)常見(jiàn)html網(wǎng)頁(yè)亂碼問(wèn)題及解決辦法,需要的朋友可以參考下2015-09-09
114啦源碼(114la)不能生成地方房產(chǎn)和地方報(bào)刊問(wèn)題4級(jí)頁(yè)面0字節(jié)的解決方法
做了個(gè)網(wǎng)址導(dǎo)航站,用的是114la的源碼,沒(méi)想到里面有很多問(wèn)題,官方也沒(méi)出補(bǔ)丁,沒(méi)辦法,自己學(xué)著改吧2012-01-01
php實(shí)現(xiàn)將數(shù)據(jù)做成json的格式給前端使用
今天小編就為大家分享一篇php實(shí)現(xiàn)將數(shù)據(jù)做成json的格式給前端使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
thinkPHP自動(dòng)驗(yàn)證機(jī)制詳解
這篇文章主要介紹了thinkPHP自動(dòng)驗(yàn)證機(jī)制,結(jié)合實(shí)例形式分析了thinkPHP自動(dòng)驗(yàn)證機(jī)制的格式、原理與具體操作技巧,需要的朋友可以參考下2016-12-12

