数据准备 假设储存留言的数据表(guestbook)数据如下: id | nickname | email | content | createtime | 1 | admin | admin@5idev.com | 留言测试 | 1264167501 | 2 | user | user@163.com | 大家好 | 1264168127 | 3 | 小明 | xiaoming@163.com | 做得好,继续努力。。 | 1264168865 | 4 | 小张 | xiaozhang@163.com | 来看看 | 1264169118 | 5 | 小丽 | xiaoli@tom.com | haha | 1283276566 | 6 | Tom | tom@gmail.com | Hello | 1283336218 | 7 | Jack | jack@hotmail.com | okok | 1283336315 | 8 | admin | admin@5idev.com | 嗯嗯 | 1283336315 | 9 | 阿里巴巴 | alibaba@5idev.com | 来看看 | 1283337158 | 10 | 路人甲 | haha@163.com | 哈哈哈 | 1283338228 | PHP 分页技术核心在于确定当前的页数,然后利用 MySQL 的 LIMIT 关键字来指定输出对应的记录数。
如当前是第 1 页时,那么就是 LIMIT 0,4(假设一页输出 4 条记录),第 2 页时,就是 LIMIT 4,4,第 3 页时,就是 LIMIT 8,4 … 依此类推,第 n 页时,就是 LIMIT (n-1)*4,4 。
而当前页数 $p 这个参数,通过 URL 来获取。如 http://127.0.0.1/guestbook/index.php?p=2 这个这个 URL 链接,表示当前为第 2 页,PHP 中通过 $_GET['p'] 来取得对应的页数值 2 。而对于首页,则没有 $p 这个参数,那么就设定为默认值 1 即可。
分页实例的完成代码
<?php
//数据库连接
@mysql_connect("localhost","root","root123") or die("连接数据库失败:".mysql_error());
mysql_select_db("test");
mysql_query("set character set 'gbk'");
//每页显示的留言数
$pagesize = 4;
//确定页数 p 参数
$p = $_GET['p']?$_GET['p']:1;
//数据指针
$offset = ($p-1)*$pagesize;
//查询本页显示的数据
$query_sql = "SELECT * FROM guestbook ORDER BY id DESC LIMIT $offset , $pagesize";
//echo $query_sql;
$result = mysql_query($query_sql);
//循环输出
while($gblist = mysql_fetch_array($result)){
echo '<a href="',$gblist['nickname'],'">',$gblist['nickname'],'</a>�';
echo '发表于:',date("Y-m-d H:i", $gblist[createtime]),'<br />';
echo '内容:',$gblist['content'],'<br /><hr />';
}
//分页代码
//计算留言总数
$count_result = mysql_query("SELECT count(*) as count FROM guestbook");
$count_array = mysql_fetch_array($count_result);
//计算总的页数
$pagenum=ceil($count_array['count']/$pagesize);
echo '共 ',$count_array['count'],' 条留言';
//循环输出各页数目及连接
if ($pagenum > 1) {
for($i=1;$i<=$pagenum;$i++) {
if($i==$p) {
echo ' [',$i,']';
} else {
echo ' <a href="index.php?p=',$i,'">',$i,'</a>';
}
}
}
?>
运行显示效果:
Tom 发表于:2010-09-01 18:16
内容:Hello
--------------------------------------------------------------------------------
小丽 发表于:2010-09-01 01:42
内容:hahaha
--------------------------------------------------------------------------------
小张 发表于:2010-01-22 22:05
内容:来看看
--------------------------------------------------------------------------------
小明 发表于:2010-01-22 22:01
内容:做得好,继续努力
--------------------------------------------------------------------------------
共 10 条留言 1 [2] 3
|