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 サイトの他の関連記事を参照してください。