php显示页码分页类的封装

时间:2022-03-03 14:05:23

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

一、代码

conn.php

?
1
2
3
4
5
6
7
8
9
10
11
12
<?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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<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."页&nbsp;&nbsp;&nbsp;";//输出当前第几页,共几页
  if($this->page==1){//如果当前页是1
   $message.="首页&nbsp;上一页&nbsp;&nbsp;&nbsp;";//输出没有链接的文字
  }else{
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=1'>首页</a>&nbsp;";//输出有链接的文字
   $message.="<a href='".$_SERVER['PHP_SELF']."?page=".($this->page-1)."'>上一页</a>&nbsp;&nbsp;";//输出有链接的文字
  }
  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.="&nbsp;&nbsp;下一页&nbsp;尾页";//显示没有链接的文字
  }else{
   $message.="&nbsp;&nbsp;<a href='".$_SERVER['PHP_SELF']."?page=".($this->page+1)."'>下一页</a>&nbsp;";//显示有链接的文字
   $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显示页码分页类的封装

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