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

大規模なデータセットに PHP および MySQL のページネーションを実装するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-04 00:50:10
オリジナル
554 人が閲覧しました

How to Implement PHP and MySQL Pagination for Large Datasets?

PHP および MySQL のページ分割

Web アプリケーションの一般的なタスクの 1 つは、大規模なデータセットをページ分割された形式で表示し、ユーザーが限られたデータセットを表示できるようにすることです。ページごとの結果の数。これにより、ユーザー エクスペリエンスとパフォーマンスが向上します。

ユーザー ID でフィルターされた「リダイレクト」テーブルからすべてのレコードを取得する MySQL クエリを考えてみましょう。

SELECT * FROM redirect WHERE user_id = '".$_SESSION['user_id']."' ORDER BY 'timestamp'
ログイン後にコピー

このクエリを次のようにページ分割するには、 1 ページあたり 10 件の結果を表示するには、次の手順に従います:

<?php

// Insert your MySQL connection code here

// Set the number of results per page
$perPage = 10;

// Get the current page number from GET request (or default to 1)
$page = (isset($_GET['page'])) ? (int)$_GET['page'] : 1;

// Calculate the starting record for the specified page
$startAt = $perPage * ($page - 1);

// Count the total number of records in the table
$query = "SELECT COUNT(*) as total FROM redirect
WHERE user_id = '".$_SESSION['user_id']."'";
$r = mysql_fetch_assoc(mysql_query($query));

// Calculate the total number of pages
$totalPages = ceil($r['total'] / $perPage);

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

// Execute the paginated query
$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 the results using the pagination system
echo $links; // Show links to other pages
?>
ログイン後にコピー

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

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