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