本文实例为大家分享了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. "页 " ; //输出当前第几页,共几页 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(); ?> |
二、运行结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。