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编码规范之注释和文件结构说明
Jul 09 PHP
php中设置多级目录session的问题
Aug 08 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
php调用方法mssql_fetch_row、mssql_fetch_array、mssql_fetch_assoc和mssql_fetch_objcect读取数据的区别
Aug 08 PHP
php GUID生成函数和类
Mar 10 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
php json转换成数组形式代码分享
Nov 10 PHP
PHP那些琐碎的知识点(整理)
May 20 PHP
PHP长连接实现与使用方法详解
Feb 11 PHP
PHP回调函数简单用法示例
May 08 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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
德生PL990的分析评价
2021/03/02 无线电
mysql5详细安装教程
2007/01/15 PHP
使用PHP编写发红包程序
2015/07/22 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
prototype1.4中文手册
2006/09/22 Javascript
js 获取子节点函数 (兼容FF与IE)
2010/04/18 Javascript
mysql输出数据赋给js变量报unterminated string literal错误原因
2010/05/22 Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
2012/06/04 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
2014/10/10 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
SelectPage v2.4 发布新增纯下拉列表和关闭分页功能
2017/09/07 Javascript
Javascript通过控制类名更改样式
2019/05/24 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
wxPython 入门教程
2008/10/07 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
基于python3实现倒叙字符串
2020/02/18 Python
基于pandas向csv添加新的行和列
2020/05/25 Python
如何一键升级Python所有包
2020/11/05 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
五一劳动节活动记录
2014/03/23 职场文书
文明村创建实施方案
2014/03/27 职场文书
小班开学寄语
2014/04/04 职场文书
给领导的感谢信范文
2015/01/23 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
解决MySQL添加新用户-ERROR 1045 (28000)的问题
2022/03/03 MySQL