php如何实现分页
PHP 分页实现方法
数据库查询与分页逻辑
在 PHP 中实现分页通常需要结合数据库查询和页面逻辑。以下是一个基于 MySQL 的分页实现示例:
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');
// 每页显示的记录数
$records_per_page = 10;
// 获取当前页码
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
// 计算偏移量
$offset = ($current_page - 1) * $records_per_page;
// 查询总记录数
$total_records = $conn->query("SELECT COUNT(*) FROM table_name")->fetch_row()[0];
// 计算总页数
$total_pages = ceil($total_records / $records_per_page);
// 查询当前页数据
$result = $conn->query("SELECT * FROM table_name LIMIT $offset, $records_per_page");
分页链接生成
在页面底部生成分页导航链接:
// 分页链接生成
echo '<div class="pagination">';
// 上一页链接
if ($current_page > 1) {
echo '<a href="?page='.($current_page - 1).'">上一页</a>';
}
// 页码链接
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $current_page) {
echo '<span class="current">'.$i.'</span>';
} else {
echo '<a href="?page='.$i.'">'.$i.'</a>';
}
}
// 下一页链接
if ($current_page < $total_pages) {
echo '<a href="?page='.($current_page + 1).'">下一页</a>';
}
echo '</div>';
使用预处理语句的安全版本
为防止 SQL 注入,建议使用预处理语句:
// 使用预处理语句
$stmt = $conn->prepare("SELECT * FROM table_name LIMIT ?, ?");
$stmt->bind_param("ii", $offset, $records_per_page);
$stmt->execute();
$result = $stmt->get_result();
前端样式示例
为分页添加基本 CSS 样式:
.pagination {
margin: 20px 0;
text-align: center;
}
.pagination a, .pagination span {
display: inline-block;
padding: 5px 10px;
margin: 0 5px;
border: 1px solid #ddd;
text-decoration: none;
color: #333;
}
.pagination a:hover {
background-color: #f5f5f5;
}
.pagination .current {
background-color: #337ab7;
color: white;
border-color: #337ab7;
}
使用框架的分页实现
如果使用 Laravel 等框架,可以利用内置分页功能:
// Laravel 分页示例
$items = DB::table('table_name')->paginate(15);
// 在视图中显示分页链接
{{ $items->links() }}
AJAX 分页实现
对于无刷新分页,可以使用 AJAX:
// JavaScript 部分
$(document).on('click', '.pagination a', function(e) {
e.preventDefault();
var page = $(this).attr('href').split('page=')[1];
loadPage(page);
});
function loadPage(page) {
$.ajax({
url: '?page=' + page,
type: 'get',
dataType: 'html',
success: function(data) {
$('#content').html(data);
}
});
}
以上方法涵盖了从基础到进阶的 PHP 分页实现方式,可根据项目需求选择适合的方案。







