ウェブサイト開発では、ページング機能は非常に一般的な要件です。ページネーションは、ページの読み込みの時間を効果的に短縮し、ユーザーエクスペリエンスをよりスムーズにすることができます。この記事では、PHPでmysqli_result関数を使用して、制限付きのページング関数を実装する方法を紹介します。
ページングの基本的な考え方は、すべてのデータを一度に返すことが、特にデータの量が多い場合、パフォーマンスの問題を引き起こす可能性があるということです。したがって、クエリ内のレコードの数を制限することによりページングを実装し、したがって、過度のデータロードを回避します。
制限は、返されたレコードの数を制限するSQLのキーワードです。制限と組み合わせて、クエリ結果の開始位置と、ページネーション効果を達成するために返されたレコードの数を指定できます。
まず、MySQLデータベースへの接続を確立し、SQLクエリステートメントを記述する必要があります。ページングを実装するには、制限を使用してページごとに表示されるレコードの数を制限し、オフセットを使用してどのレコードを設定して返信を開始します。
<?php
// データベース接続
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "your_database";
// 接続を作成します
$conn = new mysqli($servername, $username, $password, $dbname);
// 接続を確認してください
if ($conn->connect_error) {
die("接続に失敗しました: " . $conn->connect_error);
}
// ページごとに表示されるレコードの数
$records_per_page = 10;
// 現在のページ番号を取得します
if (isset($_GET['page']) && is_numeric($_GET['page'])) {
$current_page = $_GET['page'];
} else {
$current_page = 1;
}
// オフセットを計算します
$offset = ($current_page - 1) * $records_per_page;
// 書くSQLクエリステートメント
$sql = "SELECT * FROM your_table LIMIT $offset, $records_per_page";
// クエリを実行します
$result = $conn->query($sql);
// クエリの結果を取得します
if ($result->num_rows > 0) {
// 出力データ
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}
} else {
echo "データなし";
}
// レコードの総数を計算します
$total_sql = "SELECT COUNT(*) AS total FROM your_table";
$total_result = $conn->query($total_sql);
$total_row = $total_result->fetch_assoc();
$total_records = $total_row['total'];
// ページの総数を計算します
$total_pages = ceil($total_records / $records_per_page);
// 出力ページングリンク
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='m66.net?page=$i'>$i</a> ";
}
// 接続を閉じます
$conn->close();
?>
データベース接続:まず、 MySQLI拡張機能を介してMySQLデータベースに接続します。接続が成功したら、エラーを確認してください。
ページングロジック:ページパラメーターを取得して、現在のページ番号を決定します。ページ番号が提供されていない場合、デフォルトは最初のページです。次に、オフセットを計算して、クエリ結果の開始位置を決定します。
SQLクエリ:制限とオフセットを使用して、クエリごとのレコード数を制限します。 Limit $ offset、$ records_per_pageステートメントは、ページングの機能を実装します。
合計レコードと合計ページカウント:別のクエリを介してテーブル内のレコードの総数を計算し、 ceil()関数を使用してページの総数を計算して、レコードの数がrecord_per_pageの整数倍でない場合でも最後のページを表示できることを確認します。
ページネーションリンク:ページの総数に基づいてページングリンクを生成します。各リンクは異なるページ番号を指し、ユーザーはクリックして対応するページにジャンプできます。
mysqli_result関数を制限と組み合わせてページング関数を実装することは、非常に一般的なデータベースクエリ手法です。ページングロジックを合理的に設計することにより、ウェブサイトの読み込み速度を改善し、ユーザーエクスペリエンスを改善できます。実際の開発では、ページング機能は、さまざまなシナリオのニーズを満たすために、検索、フィルタリング、その他の機能と組み合わせてよく使用されます。