php实现翻页功能
PHP实现翻页功能
翻页功能是Web开发中常见的需求,可以通过PHP和MySQL结合实现。以下是实现翻页功能的关键步骤:
获取总记录数
$sql = "SELECT COUNT(*) AS total FROM your_table";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_records = $row['total'];
设置每页显示数量
$records_per_page = 10;
$total_pages = ceil($total_records / $records_per_page);
获取当前页码
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($current_page < 1) $current_page = 1;
if ($current_page > $total_pages) $current_page = $total_pages;
计算LIMIT偏移量
$offset = ($current_page - 1) * $records_per_page;
$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$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++) {
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>';
完整示例代码
<?php
$conn = new mysqli("localhost", "username", "password", "database");
$records_per_page = 10;
$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);
$current_page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
if ($current_page < 1) $current_page = 1;
if ($current_page > $total_pages) $current_page = $total_pages;
$offset = ($current_page - 1) * $records_per_page;
$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
$result = $conn->query($sql);
while ($row = $result->fetch_assoc()) {
echo $row['field_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++) {
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>';
?>
样式建议
可以添加CSS样式美化分页导航:

.pagination a, .pagination span {
display: inline-block;
padding: 5px 10px;
margin: 0 2px;
border: 1px solid #ddd;
text-decoration: none;
color: #333;
}
.pagination a:hover {
background: #eee;
}
.pagination .current {
background: #007bff;
color: white;
border-color: #007bff;
}
这种方法实现了基本的分页功能,可以根据实际需求进行调整和优化。






