腾讯云618限量抢购
  1. PHP基础教程
  2. PHP+MySQL数据库教程
  3. ThinkPHP 3.0/3.1 教程

PHP 分页具体实现代码

最后更新:2010-11-29 17:35阅读:33041

分页代码实现

数据库链接及参数设定

//数据库连接
@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";
$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 />';
}

确定当前页参数 $p 中,使用了一个三元运算符:

$p = $_GET['p']?$_GET['p']:1;

可以这么通俗的理解该运算符:$_GET['p'] 存在吗?如果存在,那么 $p = $_GET['p'] ,如果不存在,那么 $p = 1 。

接下来就是读取当前页面显示数据的具体代码,该部分可参考《MySQL Select From 查询数据》。

输出分页格式

//分页代码
//计算留言总数
$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>';
        }
    }
}

如果确定页数大于 1 ,则开始输出分页页码。如果是当前页码,这输出 [2] 这样的格式,如果不是当前页码,则输出超链接格式。

完整代码

完整代码如下:

<?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

本章节内容共分 2 部分:
  1. 1. PHP 数据显示分页技术
  2. 2. PHP 分页具体实现代码
腾讯云618限量抢购