使用MYSQL LIMIT、OFFSET 進行分頁
分頁是一種用於在可管理的區塊或頁面中顯示大型資料集的技術。在 MySQL 中,這可以使用 LIMIT 和 OFFSET 子句來實作。
問題
使用者有一個包含大量項目的資料庫表,並且想要實現網頁上的分頁。使用者已經設定代碼來每頁顯示固定數量的項目(例如 4 個),但他們需要動態確定頁面總數並允許使用者在頁面之間導航。
答案
要實現此目的,建議使用 URL 查詢參數進行分頁。此參數應代表頁碼,例如“/itempage.php?page=2”。在伺服器端程式碼中,您可以使用 $_GET['page' 檢索頁碼,並使用它來計算 SQL 查詢的 LIMIT 和 OFFSET 值。
例如:
$page = 1; if (!empty($_GET['page'])) { $page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT); if ($page === false) { $page = 1; } } $items_per_page = 4; $offset = ($page - 1) * $items_per_page; // Build the SQL query $sql = "SELECT * FROM menuitem LIMIT " . $offset . "," . $items_per_page;
要確定總頁數,請在限制結果之前執行單獨的SQL 查詢:
$sql = "SELECT COUNT(*) AS total_rows FROM menuitem"; $result = mysqli_query($con, $sql); $row_count = mysqli_num_rows($result); mysqli_free_result($result); $page_count = 0; if ($row_count === 0) { // Handle empty table error } else { $page_count = ceil($row_count / $items_per_page); if ($page > $page_count) { // Handle out-of-range page request } }
包含總頁數和當前頁數字,您現在可以動態生成分頁內容的導航連結。
以上是如何使用 MySQL LIMIT 和 OFFSET 實作分頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!