ホームページ > バックエンド開発 > PHPチュートリアル > LIMIT と OFFSET を使用して MySQL でページネーションを実装するにはどうすればよいですか?

LIMIT と OFFSET を使用して MySQL でページネーションを実装するにはどうすればよいですか?

DDD
リリース: 2024-11-17 12:13:01
オリジナル
313 人が閲覧しました

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

ページネーションに 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート