PHPで複数のレコードをページ分割する方法

PHPでは、以下の手順で複数レコードをページ分割できます。

  1. データベースの全レコードの件数を取得します。
  2. 1ページに表示するレコード数を設定します(例 1ページに10 件のレコードを表示します)。
  3. 総レコード数と1ページあたりのレコード数から、総ページ数を算出します。
  4. 現在のページ番号を取得する (URLパラメータやその他の方法により)
  5. 現在のページ番号と1ページに表示するレコード数から、現在のページの開始レコードのインデックスを計算します。
  6. SQLクエリを使用して、LIMITおよびOFFSET句でデータベースから現在のページのレコードを取得します。
  7. 検索結果をページ上に表示

複数のレコードをページングするためのサンプルコードは次のとおりです。

<?php
// 定义每页显示的记录数量
$recordsPerPage = 10;
// 获取数据库中的所有记录数量
$totalRecords = count($database->query("SELECT * FROM table")->fetchAll());
// 计算总页数
$totalPages = ceil($totalRecords / $recordsPerPage);
// 获取当前页数
if (isset($_GET['page']) && $_GET['page'] > 0 && $_GET['page'] <= $totalPages) {
$currentPage = $_GET['page'];
} else {
$currentPage = 1;
}
// 计算起始记录的索引
$startIndex = ($currentPage - 1) * $recordsPerPage;
// 使用SQL查询语句获取当前页的记录
$query = "SELECT * FROM table LIMIT $startIndex, $recordsPerPage";
$result = $database->query($query)->fetchAll();
// 显示查询结果
foreach ($result as $row) {
// 显示记录内容
}
// 显示分页链接
for ($i = 1; $i <= $totalPages; $i++) {
echo "<a href='?page=$i'>$i</a> ";
}
?>

上のコード例において、$database はデータベース接続オブジェクト、table は検索対象のデータベーステーブル名を指しています。状況に応じて適宜修正してください。

bannerAds