ホームページ >データベース >mysql チュートリアル >PHP と MySQL のページネーションを実装するにはどうすればよいですか?

PHP と MySQL のページネーションを実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-06 16:58:161035ブラウズ

How to Implement PHP & MySQL Pagination?

PHP および MySQL ページネーション: 総合ガイド

ページネーションは、大きなデータセットを管理可能な部分に表示するために使用される手法です。 PHP と MySQL では、SQL クエリと PHP コードを組み合わせてページネーションを実装できます。

指定した MySQL クエリの結果をページネーションするには、次の手順に従います。

  1. ページごとの結果の数を決定します。ページごとに 10 件の結果を表示すると仮定します。この値を $perPage という名前の変数に保存します。
  2. 現在のページ番号を取得する: $_GET['page'] パラメーターを使用して現在のページ番号を取得します。設定されていない場合は、デフォルトの 1 に設定します。この値を $page という名前の変数に保存します。
  3. 開始制限を計算する: 現在のページの開始行を決定するには、式 $startAt = $perPage * を使用します。 ($page - 1)。これにより、結果の取得を開始する行番号が計算されます。
  4. 合計ページ数を取得する: MySQL クエリを実行して、テーブル内の合計行数をカウントします。このカウントを $perPage で除算し、ceil() を使用して切り上げます。結果を $totalPages という名前の変数に保存します。
  5. ページネーション リンクを生成する: 1 から $totalPages までのループを作成します。ページごとに、適切なページ番号を持つリンクを生成します。 isset($_GET['page']) 条件を使用して、現在のページを強調表示します。
  6. ページネーション クエリを実行します。元の MySQL クエリを変更して、値 $startAt と $perPage を含む LIMIT 句を追加します。これにより、現在のページの結果のみが取得されます。
  7. 結果とページネーション リンクを表示する: 結果を反復処理し、必要に応じて表示します。ユーザーがページ間を移動できるように、結果の下または上にページネーション リンクを表示します。

上記のページネーション手順を実装するサンプル コードを次に示します。

<?php
// MySQL connection code here

$perPage = 10;
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;
$startAt = $perPage * ($page - 1);

$query = "SELECT COUNT(*) as total FROM redirect
WHERE user_id = '".$_SESSION['user_id']."'";
$r = mysql_fetch_assoc(mysql_query($query));

$totalPages = ceil($r['total'] / $perPage);

$links = "";
for ($i = 1; $i <= $totalPages; $i++) {
    $links .= ($i != $page )
        ? "<a href='index.php?page=$i'>Page $i</a> "
        : "$page ";
}

$r = mysql_query($query);

$query = "SELECT * FROM 'redirect'
WHERE 'user_id'= \''.$_SESSION['user_id'].' \' 
ORDER BY 'timestamp' LIMIT $startAt, $perPage";

$r = mysql_query($query);

// Display results and pagination links here
echo $links; // Show links to other pages
?>

以上がPHP と MySQL のページネーションを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。