php显示页码分页类的封装


Posted in PHP onJune 08, 2017

本文实例为大家分享了php封装显示页码的分页类,供大家参考,具体内容如下

一、代码

conn.php

<?php 
 class Mysql{ 
  public function __construct(){ 
   $this->connect(); 
  } 
  public function connect(){ 
   $conn=mysql_pconnect('localhost','root','root') or die("Connect MySQL False"); 
   mysql_select_db('db_database20',$conn) or die("Connect DB False"); 
   mysql_query("SET NAMES utf8"); 
  } 
 } 
?>

index.php

<link rel="stylesheet" type="text/css" href="css/style.css" rel="external nofollow" > 
<?php 
 include_once("conn.php");//包含conn.php文件 
 class Page extends Mysql{//创建Page类并继承Mysql类 
  private $pagesize;//每页显示的记录数 
  private $page;//当前是第几页 
  private $pages;//总页数 
  private $total;//查询的总记录数 
  private $pagelen;//显示的页码数 
  private $pageoffset;//页码的偏移量 
  private $table;//欲查询的表名 
  function __construct($pagesize,$pagelen,$table){ 
  if($_GET['page']=="" || $_GET['page']<0){//判断地址栏参数page是否有值 
   $this->page=1;//当前页定义为1 
  }else{ 
   $this->page=$_GET['page'];//当前页为地址栏参数的值 
  } 
  $this->pagesize=$pagesize; 
  $this->pagelen=$pagelen; 
  $this->table=$table; 
  new Mysql();//实例化Mysql类 
  $sql=mysql_query("select * from $this->table");//查询表中的记录 
  $this->total=mysql_num_rows($sql);//获得查询的总记录数 
  $this->pages=ceil($this->total/$this->pagesize);//计算总页数 
  $this->pageoffset=($this->pagelen-1)/2;//计算页码偏移量 
  } 
  function sel(){ 
  $sql=mysql_query("select * from $this->table limit ".($this->page-1)*$this->pagesize.",".$this->pagesize);//查询当前页显示的记录 
  return $sql;//返回查询结果 
  } 
  function myPage(){ 
  $message="第".$this->page."页/共".$this->pages."页   ";//输出当前第几页,共几页 
  if($this->page==1){//如果当前页是1 
   $message.="首页 上一页   ";//输出没有链接的文字 
  }else{ 
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a> ";//输出有链接的文字 
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'>上一页</a>  ";//输出有链接的文字 
  } 
  if($this->page<=$this->pageoffset){//如果当前页小于页码的偏移量 
   $minpage=1;//显示的最小页数为1 
   $maxpage=$this->pagelen;//显示的最大页数为页码的值 
  }elseif($this->page>$this->pages-$this->pageoffset){//如果当前页大于总页数减去页码的偏移量 
   $minpage=$this->pages-$this->pagelen+1;//显示的最小页数为总页数减去页码数再加上1 
   $maxpage=$this->pages;//显示的最大页数为总页数 
  }else{ 
   $minpage=$this->page-$this->pageoffset;//显示的最小页数为当前页数减去页码的偏移量 
   $maxpage=$this->page+$this->pageoffset;//显示的最大页数为当前页数加上页码的偏移量 
  } 
  for($i=$minpage;$i<=$maxpage;$i++){//循环输出数字页码数 
   if($i==$this->page){ 
   $message.=$i."\n";//输出没有链接的数字 
   }else{ 
   $message.="<a id='num' href='".$_SERVER['PHP_SELF']."?page=".$i."'>".$i."</a>\n";//输出有链接的数字 
   } 
  } 
  if($this->page==$this->pages){//如果当前页等于最大页数 
   $message.="  下一页 尾页";//显示没有链接的文字 
  }else{ 
   $message.="  <a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>下一页</a> ";//显示有链接的文字 
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=".$this->pages."'>尾页</a>";//显示有链接的文字 
  } 
  return $message;//返回变量的值 
  } 
 } 
?> 
<table border="1" cellpadding="1" cellspacing="1" bordercolor="#FFFFFF" bgcolor="#FF0000"> 
 <tr> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">ID:</td> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">标题</td> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">内容</td> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF">时间</td> 
 </tr> 
<?php 
 $p=new Page('3','3','tb_demo01'); 
 $rs=$p->sel(); 
 while($rst=mysql_fetch_row($rs)){ 
?> 
 <tr> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[0] ?></td> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[1] ?></td> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[2] ?></td> 
 <td style="padding-left:3px; padding-right:3px; padding-top:3px; padding-bottom:3px;" bgcolor="#FFFFFF"><?php echo $rst[3] ?></td> 
 </tr> 
<?php }?> 
</table> 
<?php 
 echo $p->myPage(); 
?>

二、运行结果

 php显示页码分页类的封装

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
小偷PHP+Html+缓存
Dec 20 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
基于php无限分类的深入理解
Jun 02 PHP
PHP编码规范的深入探讨
Jun 06 PHP
php下载excel无法打开的解决方法
Dec 24 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
使用XHGui来测试PHP性能的教程
Jul 03 PHP
session 加入redis的实现代码
Jul 15 PHP
PHP对象实例化单例方法
Jan 19 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
Thinkphp 框架基础之源码获取、环境要求与目录结构分析
Apr 27 PHP
PHP实现创建以太坊钱包转账等功能
Apr 21 PHP
PHP 7.0新增加的特性介绍
Jun 08 #PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 #PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 #PHP
PHP简单获取随机数的常用方法小结
Jun 07 #PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 #PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 #PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 #PHP
You might like
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
js停止输出代码
2008/07/20 Javascript
JavaScript 创建运动框架的实现代码
2013/05/08 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
浅谈Unicode与JavaScript的发展史
2015/01/19 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
jQuery动态改变多行文本框高度的方法
2016/09/07 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
分析在Python中何种情况下需要使用断言
2015/04/01 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
python利用拉链法实现字典方法示例
2017/03/25 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
django项目用higcharts统计最近七天文章点击量
2019/08/17 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
期末考试动员演讲稿
2014/01/10 职场文书
就职演讲稿范文
2014/05/19 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
客户付款通知书
2015/04/23 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技
Mysql中mvcc各场景理解应用
2022/08/05 MySQL