PHP 原生代码实现数据分页显示功能
在使用 PHP 开发 Web 应用时,展示大量数据通常需要进行分页处理。本文将展示如何利用传统的 mysql 扩展(注:现代开发建议使用 PDO 或 mysqli)和原生 SQL 语句,实现一个基础的数据分页显示功能。
第1步:定义分页变量与接收参数
首先需要设置每页显示的记录数量、获取当前页数以及默认值。如果 URL 中没有传递页数参数,则默认为第一页。
- 初始化变量:设置 $pageSize 为每页显示条数,$pageNow 为当前页码(默认1)。
- 获取URL参数:使用
$_GET['pageNow']检查是否有传入的页码,如有则覆盖默认值。
第2步:连接数据库并获取总记录数
为了计算总页数,我们需要知道数据库中符合条件的总行数。此步骤涉及数据库连接、字符集设置及查询统计。
- 使用
mysql_connect连接数据库服务器。 - 执行
SET NAMES utf8确保编码正确。 - 选择目标数据库表。
- 执行
SELECT COUNT(id) FROM user获取总数,并使用ceil()函数向上取整计算总页数 ($pageCount)。
第3步:构建查询语句并获取当前页数据
利用计算出的偏移量,构造带有 LIMIT 子句的 SQL 语句,从数据库中截取当前页所需的数据片段。
- 计算偏移量:公式为 ($pageNow - 1) * $pageSize。
- 执行查询:使用
SELECT * FROM user LIMIT offset, size获取具体数据行。 - 遍历输出:使用
while循环配合mysql_fetch_assoc提取数组内容并输出到页面。
第4步:生成分页导航链接
最后,需要根据计算出的总页数,在前端渲染出可点击的分页链接列表,以便用户跳转。
- 使用
for循环从第1页遍历至最后一页。 - 每个数字都封装在超链接中,参数携带对应的页码:
href='userList.php?pageNow=$i'。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>用户列表</title>
</head>
<body>
<?php
// 注意:mysql_* 函数在 PHP 5.5+ 已弃用,建议迁移至 PDO 或 MySQLi
$con = mysql_connect("localhost","root","");
mysql_query("set names utf8");
mysql_select_db("zhiye",$con);
$pageSize = 5; //每页显示的数量,此处设为示例值
$rowCount = 0; //要从数据库中获取
$pageNow = 1; //当前显示第几页
//如果有pageNow就使用,没有就默认第一页。
if (!empty($_GET['pageNow'])){
$pageNow = $_GET['pageNow'];
}
$pageCount = 0; //表示共有多少页
$sql1 = "select count(id) from user";
$res1 = mysql_query($sql1);
if($row1=mysql_fetch_row($res1)){
$rowCount = $row1[0];
}
//计算共有多少页,ceil取进1
$pageCount = ceil(($rowCount/$pageSize));
//使用sql语句时,注意有些变量应取出赋值。
$pre = ($pageNow-1)*$pageSize;
$sql2 = "select * from user limit $pre,$pageSize";
$res2 = mysql_query($sql2);
while($row=mysql_fetch_assoc($res2)){
echo $row['user_name']."<br>";
echo $row['name']."<br>";
echo $row['email']."<br>";
echo $row['password']."<br>";
echo $row['tel']."<br>";
}
for ($i=1;$i<=$pageCount;$i++){
echo "<a href='userList.php?pageNow=$i'>$i</a> ";
}
?>
</body>
</html>
以上就是基于 PHP 实现数据分页显示功能的详细内容,更多关于 PHP 分页开发技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









