一個(gè)比較簡單的PHP 分頁分組類
更新時(shí)間:2009年12月10日 21:30:30 作者:
最近寫的一個(gè)PHP 分頁分組類,寫完后才看到,網(wǎng)上有太多的了,但是這個(gè)比較簡單,記到此處,備用,對于學(xué)習(xí)php的朋友也是一個(gè)不錯(cuò)的參考。
復(fù)制代碼 代碼如下:
<?php
class mysqlPager{
var $pagePerNum=5;//每頁顯示數(shù)據(jù)項(xiàng)數(shù)
var $pagePerGroup=5;//每分頁組中頁數(shù)
var $curPage=0;//當(dāng)前頁,Defualt 第一頁
var $totalPage=0;//總頁數(shù)
var $totalNum=0;//數(shù)據(jù)項(xiàng)總數(shù)
var $curPageGroup=0;//當(dāng)前分頁組
var $curPageUrl="";//當(dāng)前用到分頁的 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)前頁變量
*
* @param 數(shù)字 $curPage
*/
function setCurPage($curPage)
{
$this->curPage=$curPage;
}
/**
* 設(shè)置當(dāng)前分頁組變量
*
* @param mixed $curPageGroup
*/
function setCurPageGroup($curPageGroup)
{
$this->curPageGroup=$curPageGroup;
}
/**
* 設(shè)置當(dāng)前用到分布類的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è)置用戶自定義風(fēng)格
*
* @param mixed $customStyle
*/
function setCustomStyle($customStyle)
{
$this->customStyle=$customStyle;
}
/**
* 設(shè)置用戶自定義風(fēng)格返回字符串
*
*
* @param mixed $pagerString
*/
function setCustomStyleString($pagerString)
{
return $styleString="<span class=".$customStyle.">".$pagerString."</span>";
}
/**
* 輸出導(dǎo)航頁信息 可以不用參數(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;
}
/**
* 得到完整的查詢MYSQL的Sql語句
*
* @param mixed $sql
*/
function getQuerySqlStr($sql)
{
$allsql=$sql.$this->pageQuerySql;
return $allsql;
}
/**
* 設(shè)置每頁有多少數(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開始,之前要對傳入的數(shù)據(jù)進(jìn)行驗(yàn)證,防注入
//。。。
$pager=new MysqlPager();
$pager->initAllVar(...)
$pager->showNavPager();
//后面的SQL可以是任意的輸出
$sql="select id form dbname ";
$querysql=$pager->getQuerySqlStr($sql)
//以后用$querysql 查詢數(shù)據(jù)庫就可以得到相應(yīng)的結(jié)果集了
相關(guān)文章
PHP中關(guān)于PDO數(shù)據(jù)訪問抽象層的功能操作實(shí)例
下面小編就為大家?guī)硪黄狿HP中關(guān)于PDO數(shù)據(jù)訪問抽象層的功能操作實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09
jQuery向下滾動(dòng)即時(shí)加載內(nèi)容實(shí)現(xiàn)的瀑布流效果
下拉滾動(dòng)條或鼠標(biāo)滾輪滾動(dòng)到頁面底部時(shí), 動(dòng)態(tài)即時(shí)加載新內(nèi)容,通過本文給大家介紹jQuery向下滾動(dòng)即時(shí)加載內(nèi)容實(shí)現(xiàn)的瀑布流效果,感興趣的朋友參考下2016-01-01
Zend Framework入門應(yīng)用實(shí)例詳解
這篇文章主要介紹了Zend Framework入門應(yīng)用,結(jié)合實(shí)例形式詳細(xì)講述了Zend Framework應(yīng)用的創(chuàng)建步驟、相關(guān)命令、控制器及視圖文件代碼實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-12-12
114啦源碼(114la)不能生成地方房產(chǎn)和地方報(bào)刊問題4級頁面0字節(jié)的解決方法
做了個(gè)網(wǎng)址導(dǎo)航站,用的是114la的源碼,沒想到里面有很多問題,官方也沒出補(bǔ)丁,沒辦法,自己學(xué)著改吧2012-01-01
php實(shí)現(xiàn)將數(shù)據(jù)做成json的格式給前端使用
今天小編就為大家分享一篇php實(shí)現(xiàn)將數(shù)據(jù)做成json的格式給前端使用方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧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

