分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

简单易用的分页类实例代码PHP

发布时间:2023-09-06 01:12责任编辑:顾先生关键词:PHP

<?php/*********************************************** * @类名: ??page * @参数: ??$myde_total - 总记录数 * ?????????$myde_size - 一页显示的记录数 * ?????????$myde_page - 当前页 * ?????????$myde_url - 获取当前的url * @功能: ??分页实现 * @作者: ??宋海阁 */class page { ???private $myde_total; ?????????//总记录数 ???private $myde_size; ??????????//一页显示的记录数 ???private $myde_page; ??????????//当前页 ???private $myde_page_count; ????//总页数 ???private $myde_i; ?????????????//起头页数 ???private $myde_en; ????????????//结尾页数 ???private $myde_url; ???????????//获取当前的url ???/* ????* $show_pages ????* 页面显示的格式,显示链接的页数为2*$show_pages+1。 ????* 如$show_pages=2那么页面上显示就是[首页] [上页] 1 2 3 4 5 [下页] [尾页] ?????*/ ???private $show_pages; ?????public function __construct($myde_total=1,$myde_size=1,$myde_page=1,$myde_url,$show_pages=2){ ???????$this->myde_total = $this->numeric($myde_total); ???????$this->myde_size = $this->numeric($myde_size); ???????$this->myde_page = $this->numeric($myde_page); ???????$this->myde_page_count = ceil($this->myde_total/$this->myde_size); ???????$this->myde_url = $myde_url; ???????if($this->myde_total<0) $this->myde_total=0; ???????if($this->myde_page<1) ?$this->myde_page=1; ???????if($this->myde_page_count<1) $this->myde_page_count=1; ???????if($this->myde_page>$this->myde_page_count) $this->myde_page=$this->myde_page_count; ???????$this->limit = ($this->myde_page-1)*$this->myde_size; ???????$this->myde_i=$this->myde_page-$show_pages; ???????$this->myde_en=$this->myde_page+$show_pages; ???????if($this->myde_i<1){ ?????????$this->myde_en=$this->myde_en+(1-$this->myde_i); ?????????$this->myde_i=1; ???????} ???????if($this->myde_en>$this->myde_page_count){ ?????????$this->myde_i = $this->myde_i-($this->myde_en-$this->myde_page_count); ?????????$this->myde_en=$this->myde_page_count; ???????} ???????if($this->myde_i<1)$this->myde_i=1; ???} ???//检测是否为数字 ???private function numeric($num){ ?????if(strlen($num)){ ????????if(!preg_match("/^[0-9]+$/",$num)){ ????????????$num=1; ??????????}else{ ????????????$num = substr($num,0,11); ????????} ?????}else{ ??????????????$num=1; ?????} ?????return $num; ???} ???//地址替换 ???private function page_replace($page){ ???????return str_replace("{page}",$page,$this->myde_url); ???} ???//首页 ???private function myde_home(){ ???????if($this->myde_page!=1){ ???????????return ‘<a href="‘.$this->page_replace(1).‘" class="page-numbers" title="首页">首页</a>‘; ???????}else{ ???????????return "<p>首页</p>"; ???????} ???} ???//上一页 ???private function myde_prev(){ ??????if($this->myde_page!=1){ ??????????return ‘<span class="page-numbers prev inactive"><a href="‘.$this->page_replace($this->myde_page-1).‘" title="上一页">上一页</a></span>‘; ??????}else{ ?????????????return ‘<span class="page-numbers prev inactive">上一页</span>‘; ??????} ???} ???//下一页 ???private function myde_next(){ ???????if($this->myde_page!=$this->myde_page_count){ ???????????return ‘<a class="page-numbers next" href="‘.$this->page_replace($this->myde_page+1).‘" title="下一页">下一页</a>‘; ???????}else{ ???????????return‘<p class="page-numbers next">下一页</p>‘; ???????} ???} ???//尾页 ???private function myde_last(){ ???????if($this->myde_page!=$this->myde_page_count){ ???????????return ‘<a href="‘.$this->page_replace($this->myde_page_count).‘" class="page-numbers" title="尾页">尾页</a>‘; ???????}else{ ???????????return ‘<p>尾页</p>‘; ???????} ???} ???//输出 ???public function myde_write($id=‘page‘){ ??????$str =‘<div id="‘.$id.‘">‘; ??????$str.=$this->myde_home(); ??????$str.=$this->myde_prev(); ??????if($this->myde_i>1){ ???????????$str.=‘<p class="page-numbers">...</p>‘; ??????} ??????for($i=$this->myde_i;$i<=$this->myde_en;$i++){ ???????????if($i==$this->myde_page){ ???????????????$str.=‘<a href="‘.$this->page_replace($i).‘" class="page-numbers current" title="第‘.$i.‘页" class="cur">‘.$i.‘</a>‘; ???????????}else{ ?????????$str.=‘<a href="‘.$this->page_replace($i).‘" class="page-numbers" title="第‘.$i.‘页">‘.$i.‘</a>‘; ???????????} ??????} ??????if( $this->myde_en<$this->myde_page_count ){ ???????????$str.=‘<p class="page-numbers">...</p>‘; ??????} ??????$str.=$this->myde_next(); ??????$str.=$this->myde_last(); ??????$str.=‘<p class="pageRemark">共<b>‘.$this->myde_page_count. ????????????‘</b>页<b>‘.$this->myde_total.‘</b>条数据</p>‘; ??????$str.=‘</div>‘; ??????return $str; ???}}?>
./page.class.php 

分页类代码,修正

以下为调用,应用代码

<?phprequire_once(‘./page.class.php‘); //分页类$showrow = 3;//一页显示的行数$curpage = empty($_GET[‘page‘])?1:$_GET[‘page‘];//当前的页,还应该处理非数字的情况$url = "?page={page}";//分页地址,如果有检索条件 ="?page={page}&q=".$_GET[‘q‘]//省略了链接mysql的代码,测试时自行添加$sql = "SELECT * FROM table";$query = mysql_query($sql);$total = mysql_num_rows($query);//记录总条数if(!empty($_GET[‘page‘]) && $total !=0 && $curpage > ceil($total/$showrow))$curpage = ceil($total_rows/$showrow);//当前页数大于最后页数,取最后一页//获取数据$get_data = "select * from table limit ".($curpage-1)*$showrow.",$showrow;";...?><!DOCTYPE html><html><head><meta charset="utf-8"><title>实例演示简易通用的PHP分页类</title><style type="text/css">#page{ ???height:40px; ???padding:20px 0px;}#page a{ ???display:block; ???float:left; ???margin-right:10px; ???padding:2px 12px; ???height:24px; ???border:1px #cccccc solid; ???background:#fff; ???text-decoration:none; ???color:#808080; ???font-size:12px; ???line-height:24px;}#page a:hover{ ???color:#077ee3; ???border:1px #077ee3 solid;}#page a.cur{ ???border:none; ???background:#077ee3; ???color:#fff;}#page p{ ???float:left; ???padding:2px 12px; ???font-size:12px; ???height:24px; ???line-height:24px; ???color:#bbb; ???border:1px #ccc solid; ???background:#fcfcfc; ???margin-right:8px; ?}#page p.pageRemark{ ???border-style:none; ???background:none; ???margin-right:0px; ???padding:4px 0px; ???color:#666;}#page p.pageRemark b{ ???color:red;}#page p.pageEllipsis{ ???border-style:none; ???background:none; ???padding:4px 0px; ???color:#808080;}</style></head> ?<body> ???<div class="main"> ???????<div class="showData"> ???????????<!--显示数据区--> ???????</div> ???????<div class="showPage"> ?????????<?php ????????????if($total>$showrow){//总记录数大于每页显示数,显示分页 ????????????$page = new page($total,$showrow,$curpage,$url,2); ????????????echo $page->myde_write(); ???????????} ??????????> ????????</div> ???</div></body></html>

修改了showrow,出现了错误,再重新修改,就又好了,不思奇解,

以前写过类,现在都不清楚类应该怎么写了。荒废时间太长了。

现在没人用分类类代码了,除非是学习用的,一般都采用,滚动条判断读取。

简单易用的分页类实例代码PHP

原文地址:http://www.cnblogs.com/JamyWong/p/7565375.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved