php通用分页类
终于完成php的通用分页类了!呵,,有点高兴!以前说过要写一个这样的类的,无奈工作实在太忙,所以拖了下来。幸好今天是五一长假的最后一天,提前赶了回来,趁着老板不在,拼凑了出来。
还没有进行全面的测试,可能还存在各种的Bug,如果谁发现了,请告知一下,以便能及时的收正,谢谢!
源码如下:
1
<!--
2
类名:php通用分页类
3
功能:实现php中常用的页面分页,提供图像文字分页链接、图像分页链接。文字链接时,可自定义链接文字,图像链接时,可自定义图片。并且两种方式都可自定义样式。
4
作者:KnowMore
5
邮箱:hkmgjsf@yahoo.com.cn
6
电话:15976526525
7
时间:2007.5.3
8
附注:如发现Bug,麻烦告知一声,以便能及时纠正,谢谢!可自由转载,但请注明作者、出处。
9
-->
10
<?
11
class page
12
{
13
var $all_count,$cur_page,$sql,$conn,$page_size,$all_page,$cur_url;
14
15
function page($conn)//构造函数
16
{
17
$this->conn =$conn;//数据库连接
18
}
19
20
function init()//初始化函数
21
{
22
$this->get_count();//获取总纪录数
23
$this->get_curpage();//获取当前页数
24
$this->get_allpage();//总页数
25
$this->cur_url=$_SERVER['PHP_SELF'];//当前页面url
26
}
27
28
function open()//获取记录集
29
{
30
$this->init();//初始化
31
if($this->conn)
32
{
33
$sql=$this->sql." limit ".$this->page_size * $this->cur_page." ,".$this->page_size;
34
$rs=mysql_query($sql,$this->conn);
35
return $rs;
36
}
37
else
38
return false;
39
}
40
41
function get_count()//获取总纪录数
42
{
43
if(isset($_GET['all_count']))
44
$this->all_count=$_GET['all_count'];
45
else
46
{
47
$rs=mysql_query($this->sql,$this->conn);
48
$this->all_count=mysql_num_rows($rs);
49
}
50
}
51
52
function get_curpage()//获取当前页数
53
{
54
if(isset($_GET['cur_page']))
55
$this->cur_page=intval($_GET['cur_page'])+0;
56
else
57
$this->cur_page=0;
58
}
59
60
function get_allpage()//获取总页数
61
{
62
if($this->all_count % $this->page_size)
63
$this->all_page=intval($this->all_count / $this->page_size);
64
else
65
$this->all_page=intval($this->all_count / $this->page_size)-1;
66
}
67
68
//文字分页链接
69
70
function first_page($name="首页",$str="",$class_name="")//首页。$name为首页名称,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)
71
{
72
if($this->cur_page >0)//当前页大于第一页
73
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,0,$this->all_count);
74
}
75
76
function back_page($name="上一页",$str="",$class_name="")//上一页
77
{
78
if( $this->cur_page > 0)//当前页不是第一页
79
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,$this->cur_page-1,$this->all_count);
80
}
81
82
function next_page($name="下一页",$str="",$class_name="")//下一页
83
{
84
if($this->cur_page<$this->all_page)//当前页小于总页数
85
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,$this->cur_page+1,$this->all_count);
86
}
87
88
function last_page($name="尾页",$str="",$class_name="")//尾页
89
{
90
if( $this->cur_page < $this->all_page)//当前页不是最后一页
91
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,$this->all_page,$this->all_count);
92
}
93
94
//文字分页链接
95
96
97
98
//图像分页链接
99
100
function first_page_img($url="",$str="",$class_name="")//首页。$url为图片地址,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)
101
{
102
if($this->cur_page >0)//当前页大于第一页
103
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0'/></a>",$this->cur_url,0,$this->all_count);
104
}
105
106
function back_page_img($url="",$str="",$class_name="")//上一页
107
{
108
if( $this->cur_page > 0)//当前页不是第一页
109
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0' /></a>",$this->cur_url,$this->cur_page-1,$this->all_count);
110
}
111
112
function next_page_img($url="",$str="",$class_name="")//下一页
113
{
114
if($this->cur_page<$this->all_page)//当前页小于总页数
115
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0' /></a>",$this->cur_url,$this->cur_page+1,$this->all_count);
116
}
117
118
function last_page_img($url="",$str="",$class_name="")//尾页
119
{
120
if( $this->cur_page < $this->all_page)//当前页不是最后一页
121
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0' /></a>",$this->cur_url,$this->all_page,$this->all_count);
122
}
123
124
//图像分页链接
125
}
126
?>
127
<!--2
类名:php通用分页类3
功能:实现php中常用的页面分页,提供图像文字分页链接、图像分页链接。文字链接时,可自定义链接文字,图像链接时,可自定义图片。并且两种方式都可自定义样式。4
作者:KnowMore5
邮箱:hkmgjsf@yahoo.com.cn6
电话:159765265257
时间:2007.5.38
附注:如发现Bug,麻烦告知一声,以便能及时纠正,谢谢!可自由转载,但请注明作者、出处。9
-->10
<?11
class page12
{13
var $all_count,$cur_page,$sql,$conn,$page_size,$all_page,$cur_url;14
15
function page($conn)//构造函数16
{17
$this->conn =$conn;//数据库连接18
} 19
20
function init()//初始化函数21
{22
$this->get_count();//获取总纪录数23
$this->get_curpage();//获取当前页数24
$this->get_allpage();//总页数25
$this->cur_url=$_SERVER['PHP_SELF'];//当前页面url 26
} 27
28
function open()//获取记录集29
{30
$this->init();//初始化31
if($this->conn)32
{33
$sql=$this->sql." limit ".$this->page_size * $this->cur_page." ,".$this->page_size;34
$rs=mysql_query($sql,$this->conn);35
return $rs;36
}37
else38
return false;39
}40
41
function get_count()//获取总纪录数42
{43
if(isset($_GET['all_count']))44
$this->all_count=$_GET['all_count'];45
else46
{ 47
$rs=mysql_query($this->sql,$this->conn);48
$this->all_count=mysql_num_rows($rs);49
}50
}51
52
function get_curpage()//获取当前页数53
{54
if(isset($_GET['cur_page']))55
$this->cur_page=intval($_GET['cur_page'])+0;56
else57
$this->cur_page=0;58
}59
60
function get_allpage()//获取总页数61
{62
if($this->all_count % $this->page_size)63
$this->all_page=intval($this->all_count / $this->page_size);64
else65
$this->all_page=intval($this->all_count / $this->page_size)-1;66
}67
68
//文字分页链接69
70
function first_page($name="首页",$str="",$class_name="")//首页。$name为首页名称,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)71
{72
if($this->cur_page >0)//当前页大于第一页73
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,0,$this->all_count);74
}75
76
function back_page($name="上一页",$str="",$class_name="")//上一页 77
{78
if( $this->cur_page > 0)//当前页不是第一页79
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,$this->cur_page-1,$this->all_count);80
}81
82
function next_page($name="下一页",$str="",$class_name="")//下一页 83
{84
if($this->cur_page<$this->all_page)//当前页小于总页数85
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,$this->cur_page+1,$this->all_count);86
}87
88
function last_page($name="尾页",$str="",$class_name="")//尾页 89
{90
if( $this->cur_page < $this->all_page)//当前页不是最后一页91
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'>$name</a>",$this->cur_url,$this->all_page,$this->all_count);92
}93
94
//文字分页链接 95

96
97

98
//图像分页链接99

100
function first_page_img($url="",$str="",$class_name="")//首页。$url为图片地址,$str为自定义传递字符串,$class_name为CSS类选择标签名(注,以下同)101
{102
if($this->cur_page >0)//当前页大于第一页103
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0'/></a>",$this->cur_url,0,$this->all_count);104
}105
106
function back_page_img($url="",$str="",$class_name="")//上一页 107
{108
if( $this->cur_page > 0)//当前页不是第一页109
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0' /></a>",$this->cur_url,$this->cur_page-1,$this->all_count);110
}111
112
function next_page_img($url="",$str="",$class_name="")//下一页 113
{114
if($this->cur_page<$this->all_page)//当前页小于总页数115
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0' /></a>",$this->cur_url,$this->cur_page+1,$this->all_count);116
}117
118
function last_page_img($url="",$str="",$class_name="")//尾页 119
{120
if( $this->cur_page < $this->all_page)//当前页不是最后一页121
printf("<a href='%s?cur_page=%d&all_count=%d&$str' class='$class_name'><img src='$url' border='0' /></a>",$this->cur_url,$this->all_page,$this->all_count);122
}123
124
//图像分页链接 125
}126
?>127

测试代码就不多贴出来了,有兴趣的可参照如下文件:http://knowmore.blogbus.com/files/11781973580.php (另存为php文件即可)
浙公网安备 33010602011771号