php实现分页的效果
PHP 实现分页效果
分页是 Web 开发中常见的功能,用于将大量数据分成多个页面显示。以下是实现分页的详细方法:
获取总记录数
从数据库中查询总记录数,用于计算总页数。
$sql = "SELECT COUNT(*) AS total FROM your_table";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
设置每页显示记录数和当前页码
定义每页显示的记录数,并获取当前页码。

$records_per_page = 10;
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
计算总页数和偏移量
根据总记录数和每页记录数计算总页数,并确定当前页的偏移量。
$total_pages = ceil($total_records / $records_per_page);
$offset = ($current_page - 1) * $records_per_page;
查询当前页数据
使用 LIMIT 和 OFFSET 查询当前页的数据。

$sql = "SELECT * FROM your_table LIMIT $records_per_page OFFSET $offset";
$result = $conn->query($sql);
显示分页链接
生成分页导航链接,包括上一页、下一页和页码。
echo '<div class="pagination">';
if ($current_page > 1) {
echo '<a href="?page=' . ($current_page - 1) . '">上一页</a>';
}
for ($i = 1; $i <= $total_pages; $i++) {
echo '<a href="?page=' . $i . '"' . ($i == $current_page ? ' class="active"' : '') . '>' . $i . '</a>';
}
if ($current_page < $total_pages) {
echo '<a href="?page=' . ($current_page + 1) . '">下一页</a>';
}
echo '</div>';
样式优化
为分页链接添加 CSS 样式,提升用户体验。
.pagination a {
margin: 0 5px;
padding: 5px 10px;
border: 1px solid #ddd;
text-decoration: none;
}
.pagination a.active {
background: #007bff;
color: white;
}
完整示例
将上述代码整合为一个完整的示例。
$records_per_page = 10;
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$sql = "SELECT COUNT(*) AS total FROM your_table";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
$total_pages = ceil($total_records / $records_per_page);
$offset = ($current_page - 1) * $records_per_page;
$sql = "SELECT * FROM your_table LIMIT $records_per_page OFFSET $offset";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()) {
echo $row['column_name'] . '<br>';
}
echo '<div class="pagination">';
if ($current_page > 1) {
echo '<a href="?page=' . ($current_page - 1) . '">上一页</a>';
}
for ($i = 1; $i <= $total_pages; $i++) {
echo '<a href="?page=' . $i . '"' . ($i == $current_page ? ' class="active"' : '') . '>' . $i . '</a>';
}
if ($current_page < $total_pages) {
echo '<a href="?page=' . ($current_page + 1) . '">下一页</a>';
}
echo '</div>';
通过以上步骤,可以实现一个基本的分页功能。根据实际需求,可以进一步优化和扩展。






