本文分享一例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
|
<?php
/*
* Created on 2011-07-28
* 使用方法:
require_once('mypage.php');
$result=mysql_query("select * from mytable", $myconn);
$total=mysql_num_rows($result); //取得信息总数
pageDivide($total,10); //调用分页函数
//数据库操作
$result=mysql_query("select * from mytable limit $sqlfirst,$shownu", $myconn);
while($row=mysql_fetch_array($result)){
//...您的操作
}
echo $pagecon; //输出分页导航内容
*/
if (!function_exists( "pageDivide" )){
# $total 信息总数
# $shownu 显示数量,默认20
# $url 本页链接
function pageDivide( $total , $shownu =20, $url = '' ){
# $page 当前页码
# $sqlfirst mysql数据库起始项
# $pagecon 分页导航内容
global $page , $sqlfirst , $pagecon , $_SERVER ;
$GLOBALS [ "shownu" ]= $shownu ;
if (isset( $_GET [ 'page' ])){
$page = $_GET [ 'page' ];
} else $page =1;
#如果 $url 使用默认,即空值,则赋值为本页URL
if (! $url ){ $url = $_SERVER [ "REQUEST_URI" ];}
#URL分析
$parse_url = parse_url ( $url );
@ $url_query = $parse_url [ "query" ]; //取出在问号?之后内容
if ( $url_query ){
$url_query =preg_replace( "/(&?)(page=$page)/" , "" , $url_query );
$url = str_replace ( $parse_url [ "query" ], $url_query , $url );
if ( $url_query ){
$url .= "&page" ;
} else $url .= "page" ;
} else $url .= "?page" ;
#页码计算
$lastpg = ceil ( $total / $shownu ); //最后页,总页数
$page =min( $lastpg , $page );
$prepg = $page -1; //上一页
$nextpg =( $page == $lastpg ? 0 : $page +1); //下一页
$sqlfirst =( $page -1)* $shownu ;
#开始分页导航内容
$pagecon = "显示第 " .( $total ?( $sqlfirst +1):0). "-" .min( $sqlfirst + $shownu , $total ). " 条记录,共 <B>$total</B> 条记录" ;
if ( $lastpg <=1) return false; //如果只有一页则跳出
if ( $page !=1) $pagecon .= " <a href='$url=1'>首页</a> " ; else $pagecon .= " 首页 " ;
if ( $prepg ) $pagecon .= " <a href='$url=$prepg'>前页</a> " ; else $pagecon .= " 前页 " ;
if ( $nextpg ) $pagecon .= " <a href='$url=$nextpg'>后页</a> " ; else $pagecon .= " 后页 " ;
if ( $page != $lastpg ) $pagecon .= " <a href='$url=$lastpg'>尾页</a> " ; else $pagecon .= " 尾页 " ;
#下拉跳转列表,循环列出所有页码
$pagecon .= " 到第 <select name='topage' size='1' onchange='window.location=\"$url=\"+this.value'>\n" ;
for ( $i =1; $i <= $lastpg ; $i ++){
if ( $i == $page ) $pagecon .= "<option value='$i' selected>$i</option>\n" ;
else $pagecon .= "<option value='$i'>$i</option>\n" ;
}
$pagecon .= "</select> 页,共 $lastpg 页" ;
}
} else die ( 'pageDivide()同名函数已经存在!' );
?>
|
相信本文所述对大家PHP程序设计的学习有一定的借鉴价值。