php是一种基于服务器端的脚本语言,广泛用于网页开发中。当我们处理使用数据库中大量的数据时,通常会需要使用数据分页技术,将数据分成一个个可以显示的页,以节省服务器资源并提高用户访问效率。本文将介绍如何利用php实现数据分页功能。
- 数据库连接
首先,我们需要连接数据库,通过如下代码实现:
$servername = "localhost"; //数据库主机名
$username = "root"; //数据库用户名
$password = ""; //数据库密码
$dbname = "myDB"; //数据库名称
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检测连接是否成功
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}- 获取总记录数
接下来,我们需要获取数据库中的总记录数,以便分页。通过如下代码可以实现:
$sql = "SELECT COUNT(*) FROM myTable"; //myTable为数据表名 $result = mysqli_query($conn, $sql); $row = mysqli_fetch_array($result); $total_records = $row[0]; //获取总记录数
- 计算分页
有了总记录数后,我们就可以计算出需要分的页数和每页显示的记录数。例如,每页显示10条数据,总共有100条数据,那么我们就需要分成10页。通过下面的代码可以实现:
$records_per_page = 10; //每页记录数 $total_pages = ceil($total_records / $records_per_page); //总页数
- 获取当前页码
在分页时需要获取当前页码,以确定需要显示的数据范围。通过如下代码可以获取当前页码:
立即学习“PHP免费学习笔记(深入)”;
if (isset($_GET['page'])) {
$current_page = $_GET['page'];
} else {
$current_page = 1; //默认为第一页
}- 计算起始记录位置
有了当前页码和每页记录数,我们就可以计算起始查询的记录位置了。例如,要查询第3页的数据,且每页显示10条数据,那么起始记录位置为:
部分功能简介:商品收藏夹功能热门商品最新商品分级价格功能自选风格打印结算页面内部短信箱商品评论增加上一商品,下一商品功能增强商家提示功能友情链接用户在线统计用户来访统计用户来访信息用户积分功能广告设置用户组分类邮件系统后台实现更新用户数据系统图片设置模板管理CSS风格管理申诉内容过滤功能用户注册过滤特征字符IP库管理及来访限制及管理压缩,恢复,备份数据库功能上传文件管理商品类别管理商品添加/修改/
$starting_position = ($current_page - 1) * $records_per_page;
- 查询数据
计算出起始记录位置后,我们需要查询数据库并获取要显示的数据。通过如下代码可以实现:
$sql = "SELECT * FROM myTable LIMIT $starting_position, $records_per_page"; $result = mysqli_query($conn, $sql);
- 显示分页导航栏
最后,在页面底部显示分页导航栏。通过如下代码可以实现:
echo "
- ";
if ($current_page > 1) {
$prev_page = $current_page - 1;
echo "
- « "; } for ($i = 1; $i <= $total_pages; $i++) { if ($i == $current_page) { echo "
- $i "; } else { echo "
- $i "; } } if ($current_page < $total_pages) { $next_page = $current_page + 1; echo "
- » "; } echo "
上述代码利用了Bootstrap框架的样式,可以自行调整样式和布局。
完整代码如下:
PHP数据分页
姓名
年龄
性别
";
echo "" . $row['name'] . " ";
echo "" . $row['age'] . " ";
echo "" . $row['gender'] . " ";
echo "";
}
?>
";
if ($current_page > 1) {
$prev_page = $current_page - 1;
echo "« ";
}
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $current_page) {
echo "$i ";
} else {
echo "$i ";
}
}
if ($current_page < $total_pages) {
$next_page = $current_page + 1;
echo "» ";
}
echo "";
?>
需要注意的是,在实际应用中,我们需对每一步代码进行安全性校验以防止SQL注入等恶意攻击。










