ページネーションに MySQL LIMIT と OFFSET を使用する
ページネーションは、大きなデータセットを管理可能なチャンクで表示するために不可欠です。 MySQL には、この機能を有効にするための LIMIT と OFFSET という 2 つのコマンドが用意されています。
LIMIT は取得する最大行数を設定し、OFFSET は取得を開始する前にスキップする行数を指定します。これにより、特定のページのデータを取得できます。
ページネーションのサンプル コード:
ページごとに 4 つの項目を表示する次のコードを考えてみましょう:
$result = mysqli_query($con, "SELECT * FROM menuitem LIMIT 4");
このコードは、menuitem テーブルから最初の 4 行を取得します。複数のページを作成するには、OFFSET を使用して行をスキップできます。
$offset = 4; $result = mysqli_query($con, "SELECT * FROM menuitem LIMIT 4 OFFSET $offset");
このコードは、最初の 4 行をスキップし、次の 4 行を取得します。
合計ページ数の決定ページ:
ページ番号をハードコーディングせずにページネーションを作成するには、まず合計ページ数を決定する必要があります。これは、テーブル内の行の合計数をカウントすることで実現できます:
$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);
ページ リンクの生成:
総ページ数がわかっているので、ページ リンクを生成できます。
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 中国語 Web サイトの他の関連記事を参照してください。