方法一:复制代码 代码如下: 分页类 用于实现对多条数据分页显示  version:1.0 Date:2013-10-20 */ /* 调用非常方便,先连接好数据库,直接传人查询的sql字符串即可,也可以指定每页显示的数据条数 例如$pages = new Page('SELECT * FROM `zy_common_member`'); 或 $pages = new Page('SELECT * FROM `zy_common_member`', 10); */ class Page{ private $curPage; private $totalPages;//数据总共分多少页显示 private $dispNum;//每页显示的数据条数 private $queryStr;//查询的SQL语句 private $limitStr;//查询语句后面的limit控制语句 /* 构造函数 $queryStr 查询数据的SQL语句 $dispNum 每页显示的数据条数 */ public function __construct($queryStr='',$dispNum=10){ $result = mysql_query($queryStr); $totalNum = mysql_num_rows($result); $this->dispNum = $dispNum; $this->totalPages = ceil($totalNum / $dispNum); $this->queryStr = $queryStr; $temp = (isset($_GET["curPage"]) ? $_GET["curPage"] : 1); $this->setCurPage($temp); $this->showCurPage(); $this->showFoot(); } /*显示当前页的数据内容*/ private function showCurPage(){ $this->limitStr = ' LIMIT '.(($this->curPage - 1)* $this->dispNum).','.$this->dispNum; //echo $this->queryStr.$this->limitStr; $result = mysql_query($this->queryStr.$this->limitStr); if (!$result) { if ($this->totalPages > 0) { echo '查询出错'.''; } else { echo '无数据'.''; } return; } $cols = mysql_num_fields($result); echo ''; echo ''; for($i=0; $i { echo ''; echo mysql_field_name($result, $i); echo ''; } echo ''; while($row = mysql_fetch_assoc($result)) { echo ''; foreach($row as $key=>$value) { echo ''; echo $value; echo ''; } echo ''; } echo ''; } private function setCurPage($curPage){ if($curPage { $curPage = 1; } else if($curPage > $this->totalPages) { $curPage = $this->totalPages; } $this->curPage = $curPage; } /* 显示分页页脚的信息 如首页,上一页,下一页,尾页等信息 */ private function showFoot(){ echo '首页'; echo 'curPage - 1).'">上一页'; echo 'curPage + 1).'">下一页'; echo 'totalPages.'">尾页'; } }?>方法二:复制代码 代码如下:class mysqlPager{ var $pagePerNum=5;//每页显示数据项数 var $pagePerGroup=5;//每分页组中页数 var $curPage=0;//当前页,Defualt 第一页 var $totalPage=0;//总页数 var $totalNum=0;//数据项总数 var $curPageGroup=0;//当前分页组 var $curPageUrl="";//当前用到分页的 URL var $customStyle="";//自定义风格 var $pageQuerySql=""; function mysqlPager(){//构造函数 totalNum=$totalNum; $this->pagePerGroup=$pagePerGroup; $this->curPageUrl=$curPageUrl; $this->curPage=$curPage; $this->curPageGroup=$curPageGroup; } /** * 设置当前页变量 * * @param 数字 $curPage */ function setCurPage($curPage) { $this->curPage=$curPage; } /** * 设置当前分页组变量 * * @param mixed $curPageGroup */ function setCurPageGroup($curPageGroup) { $this->curPageGroup=$curPageGroup; } /** * 设置当前用到分布类的URL * $curPageUrl string */ function setCurPageUrl($curPageUrl) { $this->curPageUrl=$curPageUrl; } /** * 获取所有 * * @param 数字 $totalNum * @param 数字 $curPage * @return float */ function getTotalPage($totalNum,$curPage=0) { return $this->totalPage=ceil($totalNum/$this->pagePerNum); } /** * 设置用户自定义风格 * * @param mixed $customStyle */ function setCustomStyle($customStyle) { $this->customStyle=$customStyle; } /** * 设置用户自定义风格返回字符串 * * * @param mixed $pagerString */ function setCustomStyleString($pagerString) { return $styleString="".$pagerString.""; } /** * 输出导航页信息 可以不用参数,但是在使用前一定要设置相应的变量 * * @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=""; //判断变量是否以经初始化 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.="curPageUrl."?cpg=$prePageGroup >".$this->setCustomStyleString(" "; } for($i=1;$ipagePerGroup;$i++) { $curPageNum=($this->curPageGroup-1)*$this->pagePerGroup+$i; if($curPageNumtotalPage){ if($curPageNum==$this->curPage) { $rtnString.=" ".$this->setCustomStyleString($curPageNum); }else { $rtnString.=" curPageUrl?cpg={$this->curPageGroup}&cp=$curPageNum >"; $rtnString.=$this->setCustomStyleString($curPageNum).""; } } } if($this->curPageGrouptotalPage/$this->pagePerGroup)-1) { $nextPageGroup=$this->curPageGroup+1; $rtnString.=" curPageUrl?cpg=$nextPageGroup >".$this->setCustomStyleString(">>").""; } $this->pageQuerySql=" limit ".(($this->curPage-1)*$this->pagePerNum).",".$this->pagePerNum; } else { $rtnString="错误:变量未初始化!"; } return $rtnString; } /** * 得到完整的查询MYSQL的Sql语句 * * @param mixed $sql */ function getQuerySqlStr($sql) { $allsql=$sql.$this->pageQuerySql; return $allsql; } /** * 设置每页有多少数据项 * * @param INT $num */ function setPagePerNum($num) { $this->pagePerNum=$num; } } ?>使用方法: $curPage=$_GET['cp']; $curPageGroup=$_GET['cpg'] if($curPage=="") $curPage=1; if($curPageGroup=="") $curPageGroup=1; //都是从1开始,之前要对传入的数据进行验证,防注入 //。。。 $pager=new MysqlPager(); $pager->initAllVar(...) $pager->showNavPager(); //后面的SQL可以是任意的输出 $sql="select id form dbname "; $querysql=$pager->getQuerySqlStr($sql) //以后用$querysql 查询数据库就可以得到相应的结果集了方法三:\n”; for($i=1;$iif($i==$page) $pagenav.=” selected>$i\n”; else $pagenav.=”$i\n”; } $pagenav.=” 页,共 $lastpg 页”; } } ?> 分页时调用pageft()函数。不过它并没有输出任何东西,但产生几个全局变量供使用:$firstcount、$displaypg、$pagenav。下面举例说明 http://www.bkjia.com/PHPjc/824886.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/824886.htmlTechArticle方法一: 复制代码 代码如下: ?php /* 分页类 用于实现对多条数据分页显示 version:1.0 Date:2013-10-20 */ /* 调用非常方便,先连接好数据库,直...
09-14 01:55