php实现翻页
PHP实现翻页功能
获取总记录数
使用SQL查询获取总记录数,例如:
SELECT COUNT(*) AS total FROM table_name
计算总页数
根据每页显示的记录数和总记录数计算总页数:
$perPage = 10; // 每页显示10条记录
$totalPages = ceil($totalRecords / $perPage);
获取当前页码
从URL参数中获取当前页码,并确保它在有效范围内:
$currentPage = isset($_GET['page']) ? max(1, min($totalPages, (int)$_GET['page'])) : 1;
计算LIMIT偏移量
确定SQL查询的LIMIT偏移量:
$offset = ($currentPage - 1) * $perPage;
查询当前页数据
使用计算好的偏移量查询当前页数据:
SELECT * FROM table_name LIMIT $offset, $perPage
生成分页链接
创建分页导航HTML:
for ($i = 1; $i <= $totalPages; $i++) {
echo "<a href='?page=$i'" . ($i == $currentPage ? " class='active'" : "") . ">$i</a>";
}
高级分页样式
可以添加上一页/下一页和首尾页链接:
if ($currentPage > 1) {
echo "<a href='?page=1'>首页</a>";
echo "<a href='?page=".($currentPage-1)."'>上一页</a>";
}
// 页码链接...
if ($currentPage < $totalPages) {
echo "<a href='?page=".($currentPage+1)."'>下一页</a>";
echo "<a href='?page=$totalPages'>尾页</a>";
}
使用分页类库
考虑使用现成的分页类库如Laravel的Paginator:
$paginator = new Illuminate\Pagination\Paginator($items, $perPage, $currentPage);
AJAX分页实现
对于无刷新分页,可以使用jQuery AJAX:

$('.pagination a').click(function(e) {
e.preventDefault();
$.get($(this).attr('href'), function(data) {
$('#content').html(data);
});
});






