php显示页码分页类的封装

2018-09-07 22:09

阅读:340

  本文实例为大家分享了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(); ?>

  二、运行结果

  

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


评论


亲,登录后才可以留言!