版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、翻页步骤1.每页显示多少条:已知2.一共多少条:数据表中一共条数(带条件)。使用 count(*)3.一共多少页:计算出来4.循环出分页代码:组装成链接形式5.当前页,从第几条开始:(当前页码-1)*每页显示多少条翻页类使用方法require_once(dirname(_FILE_)."/lib/page.php");require_once(dirname(_FILE_)."/lib/mysql.php");$dbMysql=MySQL:getInstance(':3306','root','&
2、#39;,'myweb');$showNum=2;/每页显示多少条$sql="select count(*) as countAs from news"/查询一个多少条$allNum=$dbMysql->getRowsRst($sql);$allNum=$allNum'countAs'$page=new page($showNum,$allNum,6);/实例化翻页类$pageHtml=$page->getCode();/获得翻页代码$sql="select * from news order by id desc li
3、mit ".$page->getlimitStartNum().",".$showNum;/查询新闻列表:获得从第几条开始$newsList=$dbMysql->getRowsArray($sql);foreach($newsList as $key=>$val)echo $val'id','-',$val'title',"<br>n"echo $pageHtml;/输出翻页代码<?php/* 翻页抽象类*/abstract class abstractPage
4、/protected $GP;/ G/P:$_GET/$_POST.。取$_GET/$_POST作为翻页数组protected $pageIdName='pageId'/翻页的$_GET/$_POST数组键名protected $accurate;/ false/1/2:不精确计算页码/精确计算,前面多,并且固定连接数目/精确计算,后面多 并且固定连接数目protected $showNum;/每页显示多少条protected $allNum;/一共多少条protected $allPageNum;/一共多少页protected $nowPageNum;/当前第几页protec
5、ted $lastPageNum;/上一页页码protected $nextPageNum;/下一页页码protected $linkStartPageNum;/循环连接的的开始页码protected $linkEndPageNum;/循环连接的结束页码protected $limitStartNum;/给mysql查询语句用的 limit 开始值protected $showLinkNum;/显示几个连接/*构造函数* paraminteger$showNum每页显示多少条* paraminteger$allNum一共多少条* paraminteger$showLinkNum显示连接数* p
6、araminteger$accurate是否精确连接数* paramstring$GP使用$_GET/$_POST* paramstring$pageIdName翻页键名*/public function _construct($showNum,$allNum,$showLinkNum=10,$accurate=1,$GP='G',$pageIdName='pageId')$this->showNum=$showNum;$this->allNum=$allNum;$this->showLinkNum=$showLinkNum;$this->
7、;accurate=$accurate;$this->GP=$GP;$this->pageIdName=$pageIdName;$this->rule();/*翻页规则方法*/private function rule()if($this->GP='G')/判断使用$_GET/$_POST$this->nowPageNum=!empty($_GET$this->pageIdName)?$_GET$this->pageIdName:1;/当前第几页else$this->nowPageNum=!empty($_POST$this-&g
8、t;pageIdName)?$_POST$this->pageIdName:1;$this->allPageNum=ceil($this->allNum/$this->showNum);/一共多少页$this->nowPageNum<1 &&$this->nowPageNum=1;/对当前页码进行验证($this->nowPageNum>$this->allPageNum && $this->allPageNum!=0) &&$this->nowPageNum=$this-&
9、gt;allPageNum;$this->limitStartNum=($this->nowPageNum-1)*$this->showNum;/limit开始值$this->lastPageNum=$this->nowPageNum-1;/上一页$this->nextPageNum=$this->nowPageNum+1;/下一页$this->lastPageNum<1 && $this->lastPageNum=0;/合法化上下页页码$this->nextPageNum>$this->allPag
10、eNum && $this->nextPageNum=0;$pNum=ceil($this->showLinkNum-1)/2);/当前页码前后,平均约应该有几个连接$this->linkStartPageNum=$this->nowPageNum-$pNum;$this->linkEndPageNum=$this->nowPageNum+$pNum;if($this->accurate=false)/不精确页码 $this->validity_1();else$this->accurate($pNum);/精准计算页码个数
11、 $this->validity_2();/*精准计算连接数* paraminteger$pNum当前页前后的大约连接数*/private function accurate($pNum)if($pNum*2 +1!= $this->showLinkNum )/如果不能整除if($this->accurate=1 )/如果前面多-$this->linkEndPageNum;else/如果后面多+$this->linkStartPageNum;/*对开始页/结束页的合法性1*/private function validity_1()/注释测试 同时_1$this-
12、>linkStartPageNum<1 && $this->linkStartPageNum=1;/对连接循环的开始/结束页码合法化$this->linkEndPageNum>$this->allPageNum && $this->linkEndPageNum=$this->allPageNum;/*对开始页/结束页的合法性2*/private function validity_2()/注释测试 同时_1if(0<$pNum=1-$this->linkStartPageNum)/判断开始页码非法多少$
13、this->linkStartPageNum+=$pNum;/去除开始页码非法量$pNum> $this->allPageNum-$this->linkEndPageNum && $pNum=$this->allPageNum-$this->linkEndPageNum;/判断结束页码,非法量是否大于总页数-结束页$this->linkEndPageNum+=$pNum;/增加结束页码if(0<$pNum=$this->linkEndPageNum-$this->allPageNum)/判断结束页码非法多少$this-
14、>linkEndPageNum-=$pNum;/去除结束页码非法量$pNum> $this->linkStartPageNum-1 && $pNum=$this->linkStartPageNum-1;/判断开始页码,非法量是否大于开始页数-1$this->linkStartPageNum-=$pNum;/增加开始页码/*对开始页/结束页的合法性1* returnstring返回翻页的url*/final protected function getUrl() $url="http:/".$_SERVER"HTTP_H
15、OST".($_SERVER"SERVER_PORT"="80")?"":$_SERVER"SERVER_PORT").$_SERVER"PHP_SELF".'?'if(!empty($_GET) /如果有get值$g=$_GET;if(array_key_exists($this->pageIdName,$g) unset($g$this->pageIdName); $url.=http_build_query($g).(empty($g)?'
16、39;:'&');return $url;/*渲染模板html* paramarray$templatePath模板路径* returnstring返回html代码*/protected function renderHtml($templatePath)if($this->allNum=0) return ''$url=$this->getUrl();ob_start();require_once($templatePath);return ob_get_clean();/*抽象方法:创建翻页html* paramarray$sort排序数
17、组。为了显示顺序* returnstring返回html代码*/abstract protected function createHtml(array $sort=array('first','last','links','next','end','allPageNum');/*返回mysql limit 开始条数* returnstring返回html代码*/public function getlimitStartNum()return $this->limitStartNum;/*获得
18、翻页代码* returnstring返回html代码*/public function getCode($sort=array(),$put=false,$templatePath='')if(!empty($templatePath)if($put=true)echo $this->renderHtml($templatePath);elsereturn $this->renderHtml($templatePath);elseif($put=true)echo $this->createHtml($sort);elsereturn $this->cr
19、eateHtml($sort);/* 翻页具体实现类*/class page extends abstractPage/* 创建html* paramarray$sort排序数组。为了显示顺序* returnstring返回html代码*/protected function createHtml(array $sort=array('first','last','links','next','end','allPageNum')if($this->allNum=0)$html= '&
20、#39;else$url=$this->getUrl();if(1=$this->nowPageNum)/第一页$h'first'="第一页n"else$h'first'="<a href="".$url.$this->pageIdName."=1">第一页</a>n"if(!empty($this->lastPageNum)/上一页$h'last'="<a href="".$url.
21、$this->pageIdName."=".$this->lastPageNum."">上一页</a>n"else$h'last'="上一页n"$h'links'=""/循环的连接for($i=$this->linkStartPageNum;$i<=$this->linkEndPageNum;$i+)if($i=$this->nowPageNum)$h'links'.=$i."n"else$h'links'.="<a href="".$url.$this->pageIdName."=".$i.""&g
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海滨浮标、渔寮生态浮标运行维护服务招标文件
- 陕西省药品监督管理局直属事业单位招聘考试真题2025
- 淄博市市属公立医院及专业技术招聘考试真题2024
- 柳州市残疾人康复中心招聘考试真题2024
- 重难点解析人教版八年级物理上册第6章质量与密度-密度同步测评试题
- 安全监控设备安装工程施工方案设计
- 2025人教版高一名词性从句练习50题带答案
- 考点解析人教版八年级上册物理光现象《光的直线传播》难点解析试卷(含答案解析)
- 2025年建筑结构模拟试卷及答案
- 厂房竣工后服务与保障方案
- 2025年成人高考专升本政治模拟试题及答案
- 2025年全国成人高等学校招生考试(英语-高起点)经典试题及答案五
- 环保设备运营维护管理手册
- 体系管理从产品需求到产品规划课件
- 2025新闻记者资格证及新闻写作相关知识考试题库附含参考答案
- 数据安全dsg题库及答案解析
- 成都抖音培训课件下载
- 毕业论文园艺系范文
- 群众积分制管理办法
- ECMO护理进修汇报
- MSA-GRR数据自动生成工具
评论
0/150
提交评论