php前台分页实现
PHP前台分页实现方法
基本分页逻辑
通过计算总页数、当前页码和偏移量实现分页。假设每页显示10条数据,核心代码如下:
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$itemsPerPage = 10;
$totalItems = 100; // 从数据库获取总记录数
$totalPages = ceil($totalItems / $itemsPerPage);
$offset = ($currentPage - 1) * $itemsPerPage;
数据库查询分页
使用MySQL的LIMIT子句实现数据分页查询:

$sql = "SELECT * FROM table_name LIMIT {$offset}, {$itemsPerPage}";
$result = mysqli_query($conn, $sql);
分页链接生成
创建可点击的分页导航链接:
echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
$active = ($i == $currentPage) ? 'active' : '';
echo "<a href='?page={$i}' class='{$active}'>{$i}</a> ";
}
echo '</div>';
Bootstrap分页样式
使用Bootstrap美化分页控件:

echo '<nav aria-label="Page navigation">';
echo '<ul class="pagination">';
echo '<li class="page-item' . ($currentPage == 1 ? ' disabled' : '') . '">';
echo '<a class="page-link" href="?page=' . ($currentPage - 1) . '">Previous</a></li>';
for ($i = 1; $i <= $totalPages; $i++) {
echo '<li class="page-item' . ($i == $currentPage ? ' active' : '') . '">';
echo '<a class="page-link" href="?page=' . $i . '">' . $i . '</a></li>';
}
echo '<li class="page-item' . ($currentPage == $totalPages ? ' disabled' : '') . '">';
echo '<a class="page-link" href="?page=' . ($currentPage + 1) . '">Next</a></li>';
echo '</ul></nav>';
AJAX分页实现
使用jQuery实现无刷新分页:
$(document).on('click', '.pagination a', function(e) {
e.preventDefault();
var page = $(this).attr('href').split('page=')[1];
$.ajax({
url: 'get_data.php',
type: 'GET',
data: {page: page},
success: function(data) {
$('#content').html(data);
}
});
});
分页类封装
创建可重用的分页类:
class Pagination {
private $totalItems;
private $itemsPerPage;
private $currentPage;
public function __construct($totalItems, $itemsPerPage, $currentPage) {
$this->totalItems = $totalItems;
$this->itemsPerPage = $itemsPerPage;
$this->currentPage = $currentPage;
}
public function getOffset() {
return ($this->currentPage - 1) * $this->itemsPerPage;
}
public function getTotalPages() {
return ceil($this->totalItems / $this->itemsPerPage);
}
public function renderLinks($url = '?page=') {
// 渲染分页链接的实现
}
}
这些方法涵盖了从基础到进阶的PHP前台分页实现方案,可根据项目需求选择适合的方式。






