php实现分页显示
PHP实现分页显示的方法
分页功能是Web开发中常见的需求,可以通过以下方法实现:
数据库查询分页
使用SQL的LIMIT子句实现分页查询:
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$perPage = 10;
$start = ($page - 1) * $perPage;
$sql = "SELECT * FROM table_name LIMIT $start, $perPage";
$result = mysqli_query($conn, $sql);
计算总页数
获取总记录数并计算总页数:
$totalSql = "SELECT COUNT(*) FROM table_name";
$totalResult = mysqli_query($conn, $totalSql);
$totalRows = mysqli_fetch_row($totalResult)[0];
$totalPages = ceil($totalRows / $perPage);
生成分页链接
创建分页导航HTML:

echo '<div class="pagination">';
for ($i = 1; $i <= $totalPages; $i++) {
$active = ($i == $page) ? 'active' : '';
echo "<a href='?page=$i' class='$active'>$i</a>";
}
echo '</div>';
使用PDO实现分页
更安全的PDO预处理方式:
$stmt = $pdo->prepare("SELECT * FROM table_name LIMIT :start, :perPage");
$stmt->bindValue(':start', $start, PDO::PARAM_INT);
$stmt->bindValue(':perPage', $perPage, PDO::PARAM_INT);
$stmt->execute();
前端样式优化
添加CSS样式美化分页导航:

.pagination {
margin: 20px 0;
}
.pagination a {
padding: 8px 16px;
text-decoration: none;
border: 1px solid #ddd;
margin: 0 4px;
}
.pagination a.active {
background-color: #4CAF50;
color: white;
border: 1px solid #4CAF50;
}
.pagination a:hover:not(.active) {
background-color: #ddd;
}
AJAX分页实现
无刷新加载分页内容:
$(document).on('click', '.pagination a', function(e) {
e.preventDefault();
var page = $(this).attr('href').split('page=')[1];
loadPage(page);
});
function loadPage(page) {
$.ajax({
url: 'load_data.php?page='+page,
success: function(data) {
$('#content').html(data);
}
});
}
安全注意事项
对分页参数进行验证和过滤:
$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, [
'options' => [
'default' => 1,
'min_range' => 1
]
]);
以上方法可以根据具体需求组合使用,实现完整的分页功能。






