現在の位置: ホーム> 最新記事一覧> ページネーションの実装:制限とmysqli_resultを組み合わせます

ページネーションの実装:制限とmysqli_resultを組み合わせます

M66 2025-05-28

ウェブサイト開発では、ページング機能は非常に一般的な要件です。ページネーションは、ページの読み込みの時間を効果的に短縮し、ユーザーエクスペリエンスをよりスムーズにすることができます。この記事では、PHPでmysqli_result関数を使用して、制限付きのページング関数を実装する方法を紹介します。

1。ページネーションの基本原則

ページングの基本的な考え方は、すべてのデータを一度に返すことが、特にデータの量が多い場合、パフォーマンスの問題を引き起こす可能性があるということです。したがって、クエリ内のレコードの数を制限することによりページングを実装し、したがって、過度のデータロードを回避します。

制限は、返されたレコードの数を制限するSQLのキーワードです。制限と組み合わせて、クエリ結果の開始位置と、ページネーション効果を達成するために返されたレコードの数を指定できます。

2。データベース接続とクエリ

まず、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();
?>

3。コード解析

  • データベース接続:まず、 MySQLI拡張機能を介してMySQLデータベースに接続します。接続が成功したら、エラーを確認してください。

  • ページングロジックページパラメーターを取得して、現在のページ番号を決定します。ページ番号が提供されていない場合、デフォルトは最初のページです。次に、オフセットを計算して、クエリ結果の開始位置を決定します。

  • SQLクエリ制限オフセットを使用して、クエリごとのレコード数を制限します。 Limit $ offset、$ records_per_pageステートメントは、ページングの機能を実装します。

  • 合計レコードと合計ページカウント:別のクエリを介してテーブル内のレコードの総数を計算し、 ceil()関数を使用してページの総数を計算して、レコードの数がrecord_per_pageの整数倍でない場合でも最後のページを表示できることを確認します。

  • ページネーションリンク:ページの総数に基づいてページングリンクを生成します。各リンクは異なるページ番号を指し、ユーザーはクリックして対応するページにジャンプできます。

4。概要

mysqli_result関数を制限と組み合わせてページング関数を実装することは、非常に一般的なデータベースクエリ手法です。ページングロジックを合理的に設計することにより、ウェブサイトの読み込み速度を改善し、ユーザーエクスペリエンスを改善できます。実際の開発では、ページング機能は、さまざまなシナリオのニーズを満たすために、検索、フィルタリング、その他の機能と組み合わせてよく使用されます。