一個(gè)比較簡(jiǎn)單的PHP 分頁(yè)分組類(lèi)
更新時(shí)間:2009年12月10日 21:30:30 作者:
最近寫(xiě)的一個(gè)PHP 分頁(yè)分組類(lèi),寫(xiě)完后才看到,網(wǎng)上有太多的了,但是這個(gè)比較簡(jiǎn)單,記到此處,備用,對(duì)于學(xué)習(xí)php的朋友也是一個(gè)不錯(cuò)的參考。
復(fù)制代碼 代碼如下:
<?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 Eloquent ORM 多條件查詢(xún)的例子
今天小編就為大家分享一篇Laravel Eloquent ORM 多條件查詢(xún)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP 二維數(shù)組和三維數(shù)組的過(guò)濾
本文給大家介紹PHP 二維數(shù)組和三維數(shù)組的過(guò)濾,涉及到php三維數(shù)組變二維數(shù)組的相關(guān)知識(shí),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-03-03JS異常處理try..catch語(yǔ)句的作用和實(shí)例
這篇文章主要介紹了JS異常處理的作用和實(shí)例,即try..catch語(yǔ)句,需要的朋友可以參考下2014-05-05Yii2實(shí)現(xiàn)增刪改查后留在當(dāng)前頁(yè)的方法詳解
yii2.0框架是PHP開(kāi)發(fā)的一個(gè)比較高效率的框架,集合了作者的大量心血,下面這篇文章主要介紹了Yii2如何實(shí)現(xiàn)增刪改查后仍留在當(dāng)前頁(yè)的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01Yii使用ajax驗(yàn)證顯示錯(cuò)誤messagebox的解決方法
這篇文章主要介紹了Yii使用ajax驗(yàn)證顯示錯(cuò)誤messagebox的解決方法,可以自行設(shè)置Ajax提示信息的方式,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12Yii框架連接mongodb數(shù)據(jù)庫(kù)的代碼
這篇文章主要介紹了Yii框架連接mongodb數(shù)據(jù)庫(kù)的代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07