做列表分页是一项基本功能,以前写过一个asp的分页类,Asp.net中分页很多控件就直接支持,只要必样式就可以了。下面是摘自Sablog的一段分页函数,根据我的需要作了一点修改,这个分页函数应该源自DZ论坛程序。
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
| function multi($num, $perpage, $curpage, $mpurl) {
$multipage = '';
$mpurl .= strpos($mpurl, '?') ? '&' : '?';
if($num > $perpage) {
$page = 10;
$offset = 5;
$pages = @ceil($num / $perpage);
if($page > $pages) {
$from = 1;
$to = $pages;
} else {
$from = $curpage - $offset;
$to = $curpage + $page - $offset - 1;
if($from < 1) {
$to = $curpage + 1 - $from;
$from = 1;
if(($to - $from) < $page && ($to - $from) < $pages) {
$to = $page;
}
} elseif($to > $pages) {
$from = $curpage - $pages + $to;
$to = $pages;
if(($to - $from) < $page && ($to - $from) < $pages) {
$from = $pages - $page + 1;
}
}
}
$multipage = ($curpage - $offset > 1 && $pages > $page ? '<a href="'.$mpurl.'page=1">第一页</a> ' : '').($curpage > 1 ? '<a href="'.$mpurl.'page='.($curpage - 1).'">上一页</a> ' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $curpage ? $i.' ' : '<a href="'.$mpurl.'page='.$i.'">['.$i.']</a> ';
}
$multipage .= ($curpage < $pages ? '<a href="'.$mpurl.'page='.($curpage + 1).'">下一页</a>' : '').($to < $pages ? ' <a href="'.$mpurl.'page='.$pages.'">最后一页</a>' : '');
$multipage = $multipage ? '共'.$pages.'页: '.$multipage : '';
}
return $multipage;
} |
用法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| $pagesize = 10; // 每页记录数
$query = mysql_query("SELECT count(*) FROM table");
$row = mysql_fetch_array($query);
$amount = $row[0]; // 查询记录总数
$pagecount = $amount ? (($amount < $pagesize) ? 1 : (($amount % $pagesize) ? ((int)($amount / $pagesize) + 1) : ($amount / $pagesize))) : 0; // 计算总页数
$page = !empty($_GET['page']) ? max(1, intval($_GET['page'])) : 1;
$page = $page > $pagecount ? 1 : $page; // 取得当前页值
$startlimit = ($page - 1) * $pagesize; // 查询起始的偏移量
$result=mysql_query("SELECT * FROM table order by id desc LIMIT {$startlimit}, {$pagesize}"); // 查询记录集
while( $row = mysql_fetch_array($result) )
{
//你要显示的格式。
} |
输出你的分页:
1
2
| $multipage = multi($amount, $pagesize, $page, 'index.php?action=listadmin'); // 显示分页
echo $multipage; |
比以前写的那个分页类,简单多了。
6 条评论
呵呵。还很菜,继续修炼
To Jian Sir :
感谢兄弟还很挂念小弟的一亩三分地,我这杂货是纯娱乐的。
最近,生意怎么样?
许久不来,感想一二:
1、李总,好久没有关注你了噢,发现你成熟了。
2、最近,发现专卖店生意都是那么差,都在转型。就连你的这个店面也开始摆杂货了啊,什么淘宝啊、广告啊、印刷机啊都上柜了哟;
呵呵,我也来做做客,
很长一段时间没来了!
出关了?看到你最新发布的作品了,很年X的说。
大哥,我来了。呵呵
想你了呢