ホームページ > データベース > mysql チュートリアル > PHP で MySQL クエリをページ分割して 1 ページあたり 10 件の結果を表示する方法

PHP で MySQL クエリをページ分割して 1 ページあたり 10 件の結果を表示する方法

Patricia Arquette
リリース: 2024-12-02 04:06:09
オリジナル
237 人が閲覧しました

How to Paginate MySQL Queries with PHP to Display 10 Results Per Page?

PHP および MySQL のページネーション

ページネーションは、ユーザーが関連するデータセットの一部のみをロードできるため、大規模なデータセットを扱う場合に非常に重要です。これにより、サーバーの負荷が軽減され、アプリケーションの応答速度が向上します。この Q&A では、PHP および MySQL でページ分割されたクエリを使用する方法について説明します。

質問:

MySQL クエリをページ分割して 1 ページに 10 件の結果を表示するにはどうすればよいですか?

答え:

<?php

// 数据库连接代码在此处省略

$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 ";
}

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

$r = mysql_query($query);

// 在此处显示结果

echo $links; // 显示其他页面的链接
ログイン後にコピー

説明:

  1. ページング変数の設定: $perPage はページごとの結果の数を指定します ($page)現在のページ番号を取得します (指定しない場合、デフォルトは 1)。
  2. SQL オフセットの計算: $startAt は、クエリ内の SKIP 句に必要なオフセットを計算します。
  3. 結果の合計ページ数を取得する: 別のクエリを実行してデータセット内の結果の合計数を取得し、合計ページ数を計算します。
  4. ページ分割されたリンクを生成する: ループを使用して他のページへのリンクを生成し、現在のページを強調表示します。
  5. ページ分割されたクエリを実行します。 メイン クエリに OFFSET 句と LIMIT 句を追加して、クエリ結果を制限します。
  6. 結果を表示: ページ下部にページネーション リンクがあるカスタム ページに結果を表示します。

以上がPHP で MySQL クエリをページ分割して 1 ページあたり 10 件の結果を表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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