ホームページ >バックエンド開発 >PHPチュートリアル >MySQL の LIMIT と OFFSET を使用してページネーションを実装するにはどうすればよいですか?
MYSQL LIMIT、OFFSET を使用したページネーション
ページネーションは、大きなデータセットを管理可能なチャンクまたはページで表示するために使用される手法です。 MySQL では、これは LIMIT 句と OFFSET 句を使用して実現できます。
質問
ユーザーは、多数の項目を含むデータベース テーブルを持っており、実装したいと考えています。 Web ページ上のページネーション。ユーザーは、ページごとに固定数の項目 (例: 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 中国語 Web サイトの他の関連記事を参照してください。