在 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
子句實現了倒序分頁查詢,然后計算總頁數,并輸出了分頁鏈接。
這樣就可以實現倒序分頁,并且避免了重復數據的問題。