如何使用 LIMIT 和 OFFSET 在 MySQL 中實現分頁?

DDD
發布: 2024-11-17 12:13:01
原創
246 人瀏覽過

How do you implement pagination in MySQL using LIMIT and OFFSET?

使用 MySQL LIMIT 和 OFFSET 進行分頁

分頁對於以可管理的區塊顯示大型資料集至關重要。 MySQL 提供了兩個指令 LIMIT 和 OFFSET 來啟用此功能。

LIMIT 設定要檢索的最大行數,而 OFFSET 則指定開始檢索先前要跳過的行數。這允許您檢索特定頁面的資料。

分頁範例程式碼:

考慮以下程式碼,每頁顯示四個項目:

$result = mysqli_query($con, "SELECT * FROM menuitem LIMIT 4");
登入後複製

此程式碼將從menuitem 表中擷取前四行。要建立多個頁面,您可以使用 OFFSET 跳過行:

$offset = 4;
$result = mysqli_query($con, "SELECT * FROM menuitem LIMIT 4 OFFSET $offset");
登入後複製

此程式碼將跳過前四行並檢索接下來的四行。

決定總頁數頁數:

要建立沒有硬編碼頁碼的分頁,必須先確定總頁數。您可以透過計算表中的總行數來實現此目的:

$sql = "SELECT COUNT(*) FROM menuitem";
$result = mysqli_query($con, $sql);
$row_count = mysqli_num_rows($result);
// Free the result set
mysqli_free_result($result);
登入後複製

現在,您可以計算頁面數:

$items_per_page = 4;
$page_count = (int)ceil($row_count / $items_per_page);
登入後複製

產生頁面連結:

已知總頁數,就可以生成頁面links:

for ($i = 1; $i <= $page_count; $i++) {
  if ($i === $page) { // This is the current page
    echo 'Page ' . $i . '<br>';
  } else { // Show link to other page
    echo '<a href="/menuitem.php?page=' . $i . '">Page ' . $i . '</a><br>';
  }
}
登入後複製

這將生成所有頁面的鏈接,突出顯示當前頁面。

透過利用此方法,您可以建立分頁,而無需硬編碼頁碼,並確保顯示的彈性大型資料集。

以上是如何使用 LIMIT 和 OFFSET 在 MySQL 中實現分頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板