在 PHP 中,解决倒序分页重复问题的一种常用方法是使用 SQL 语句的 LIMIT
和 ORDER BY
子句配合使用。
假设你有一个数据库表格 posts
,其中包含了一些文章,每个文章都有一个自增的 id
字段。
要实现倒序分页,首先需要根据 id
字段进行倒序排序,然后使用 LIMIT
子句指定每页显示的记录数和偏移量。
下面是一个示例代码:
// 每页显示的记录数
$limit = 10;
// 当前页码
$page = isset($_GET['page']) ? $_GET['page'] : 1;
// 计算偏移量
$offset = ($page - 1) * $limit;
// 查询文章数据
$query = "SELECT * FROM posts ORDER BY id DESC LIMIT $limit OFFSET $offset";
$result = mysqli_query($conn, $query);
// 输出文章数据
while ($row = mysqli_fetch_assoc($result)) {
// 输出文章内容
echo $row['content'];
}
// 输出分页链接
$query = "SELECT COUNT(*) as total FROM posts";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
$total_pages = ceil($row['total'] / $limit);
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
在上面的示例代码中,首先通过 LIMIT
和 OFFSET
子句实现了倒序分页查询,然后计算总页数,并输出了分页链接。
这样就可以实现倒序分页,并且避免了重复数据的问题。