🗣 Wd提问: php分页代码示例
🤖 Ai回答: 以下是一个简单的PHP分页代码示例,包含数据库连接、分页逻辑和导航链接生成:
php
<?php
// 数据库连接配置
$servername = localhost;
$username = your_username;
$password = your_password;
$dbname = your_database;
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn-connect_error) {
die(连接失败: 、$conn-connect_error);
}
// 分页参数
$per_page = 5; // 每页显示5条
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
// 防止页码无效
if ($page < 1) {
$page = 1;
}
// 获取总记录数
$total_query = SELECT COUNT(*) AS total FROM your_table;
$result = $conn-query($total_query);
$total = $result-fetch_assoc()['total'];
$total_pages = ceil($total / $per_page);
// 防止超过最大页码
if ($page $total_pages && $total != 0) {
$page = $total_pages;
}
// 计算偏移量
$offset = ($page 1) * $per_page;
// 获取分页数据
$query = SELECT * FROM your_table LIMIT $offset, $per_page;
$result = $conn-query($query);
// 显示数据
echo <div class='data';
if ($result-num_rows 0) {
while($row = $result-fetch_assoc()) {
echo <div 、$row['column_name'] 、</div; // 替换为你的字段名
}
} else {
echo 没有数据;
}
echo </div;
// 生成分页导航
echo <div class='pagination';
$prev = $page 1;
$next = $page + 1;
// 首页和上一页
if ($page 1) {
echo <a href='?page=1'首页</a;
echo <a href='?page=$prev'上一页</a;
}
// 显示页码
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $page) {
echo <span class='current'$i</span;
} else {
echo <a href='?page=$i'$i</a;
}
}
// 下一页和末页
if ($page < $total_pages) {
echo <a href='?page=$next'下一页</a;
echo <a href='?page=$total_pages'末页</a;
}
echo </div;
// 关闭连接
$conn-close();
?
代码说明:
1、数据库连接:
配置数据库连接信息(替换示例中的占位符)
检查连接是否成功
2、分页参数设置:
`per_page`:每页显示的条目数
`page`:当前页码(从URL参数获取,或默认为1)
3、数据总数和总页数:
使用`COUNT(*)`获取总记录数
计算总页数(向上取整)
4、页码有效性检查:
确保页码不小于1
如果页码超过最大页数则重置为最大页
5、偏移量计算:
根据当前页码计算数据库查询的`LIMIT`偏移量
6、分页数据查询:
使用`LIMIT`获取当前页的数据
7、分页导航生成:
显示首页、上一页、页码、下一页、末页
当前页码用特殊样式高亮显示
注意事项:
1、安全性:
使用`intval()`确保页码是整数
如果表名或字段名动态变化,建议使用预处理语句防止SQL注入
2、样式建议:
css
.pagination {
margin: 20px 0;
text-align: center;
}
.pagination a {
color: 333;
text-decoration: none;
padding: 5px 10px;
margin: 0 5px;
border: 1px solid ccc;
border-radius: 3px;
}
.pagination .current {
background-color: 4CAF50;
color: white;
border: 1px solid 4CAF50;
}
3、优化建议:
如果总页数超过20页,可以考虑显示省略号(...)简化导航
使用缓存机制处理高并发分页请求
对大数据表使用索引优化查询速度
4、使用方法:
将`your_table`替换为你的实际表名
将`column_name`替换为你要显示的字段名
根据需要调整每页显示条目数(`$per_page`)
这个示例实现了基本的分页功能,你可以根据具体需求进行扩展和优化。
📣 商家广告:





0
IP地址: 137.99.86.133
搜索次数: 20
提问时间: 2025-12-14 03:13:28
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。