分页功能是PHP程序设计中非常常见的功能,不同于以往的,今天本文介绍的是PHP基于数组实现的分页函数。
关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页函数的操作及显示,需要配合使用。两个函数通过全局变量$countpage发生联系,此变量用于跟踪总页码数。
具体实例代码如下:
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
|
<?php
/**
* 数组分页函数 核心函数 array_slice
* 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中
* $count 每页多少条数据
* $page 当前第几页
* $array 查询出来的所有数组
* order 0 - 不变 1- 反序
*/
function page_array( $count , $page , $array , $order ){
global $countpage ; #定全局变量
$page =( empty ( $page ))? '1' : $page ; #判断当前页面是否为空 如果为空就表示为第一页面
$start =( $page -1)* $count ; #计算每次分页的开始位置
if ( $order ==1){
$array = array_reverse ( $array );
}
$totals = count ( $array );
$countpage = ceil ( $totals / $count ); #计算总页面数
$pagedata = array ();
$pagedata = array_slice ( $array , $start , $count );
return $pagedata ; #返回查询数据
}
/**
* 分页及显示函数
* $countpage 全局变量,照写
* $url 当前url
*/
function show_array( $countpage , $url ){
$page = empty ( $_GET [ 'page' ])?1: $_GET [ 'page' ];
if ( $page > 1){
$uppage = $page -1;
} else {
$uppage =1;
}
if ( $page < $countpage ){
$nextpage = $page +1;
} else {
$nextpage = $countpage ;
}
$str = '<div style="border:1px; width:300px; height:30px; color:#9999CC">' ;
$str .= "<span>共 {$countpage} 页 / 第 {$page} 页</span>" ;
$str .= "<span><a href='$url?page=1'> 首页 </a></span>" ;
$str .= "<span><a href='$url?page={$uppage}'> 上一页 </a></span>" ;
$str .= "<span><a href='$url?page={$nextpage}'>下一页 </a></span>" ;
$str .= "<span><a href='$url?page={$countpage}'>尾页 </a></span>" ;
$str .= '</div>' ;
return $str ;
}
?>
|
希望本文所述实例对大家的PHP程序设计能起到一定的借鉴作用。