PHPはデータページング機能を実装します

王林
リリース: 2023-06-23 13:10:01
オリジナル
1100 人が閲覧しました

PHP は、Web 開発で広く使用されているサーバー側スクリプト言語です。データベース内の大量のデータを処理する場合、通常はデータ ページング テクノロジを使用してデータを表示可能なページに分割し、サーバー リソースを節約し、ユーザーのアクセス効率を向上させる必要があります。この記事では、PHPを使用してデータページング機能を実装する方法を紹介します。

  1. データベース接続

まず、データベースに接続する必要があります。これは、次のコードによって実現されます。レコードの総数

  1. 次に、ページング用にデータベース内のレコードの総数を取得する必要があります。これは、次のコードで実現できます。
  2. $servername = "localhost"; //数据库主机名
    $username = "root"; //数据库用户名
    $password = ""; //数据库密码
    $dbname = "myDB"; //数据库名称
    
    // 创建连接
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    
    // 检测连接是否成功
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    ログイン後にコピー

ページングの計算

  1. レコードの総数を取得した後、必要なページ数を計算できます。分割され、各ページ番号にレコードが表示されます。たとえば、各ページに 10 個のデータが表示され、合計 100 個のデータがある場合、10 ページに分割する必要があります。これは、次のコードによって実現できます。
  2. $sql = "SELECT COUNT(*) FROM myTable"; //myTable为数据表名
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_array($result);
    
    $total_records = $row[0]; //获取总记录数
    ログイン後にコピー

現在のページ番号を取得する

  1. ページングするときは、現在のページ番号を取得して、対象となるデータ範囲を決定する必要があります。を表示する必要があります。現在のページ番号は、次のコードで取得できます。
  2. $records_per_page = 10; //每页记录数
    $total_pages = ceil($total_records / $records_per_page); //总页数
    ログイン後にコピー

開始レコード位置の計算

  1. 現在のページ番号とページごとのレコード数を使用して、開始クエリを計算できます。 位置が記録されます。たとえば、3 ページのデータをクエリし、各ページに 10 個のデータを表示する場合、開始レコード位置は次のようになります。
  2. if (isset($_GET['page'])) {
        $current_page = $_GET['page'];
    } else {
        $current_page = 1; //默认为第一页
    }
    ログイン後にコピー

Query data

    # #Calculate the starting 位置を記録した後、データベースにクエリを実行して、表示するデータを取得する必要があります。これは、次のコードによって実現できます。
  1. $starting_position = ($current_page - 1) * $records_per_page;
    ログイン後にコピー
ページング ナビゲーション バーを表示します

    最後に、ページの下部にページング ナビゲーション バーを表示します。これは、次のコードによって実現できます。
  1. $sql = "SELECT * FROM myTable LIMIT $starting_position, $records_per_page";
    $result = mysqli_query($conn, $sql);
    ログイン後にコピー
  2. 上記のコードは、Bootstrap フレームワークのスタイルを使用しており、スタイルとレイアウトを独自に調整できます。

完全なコードは次のとおりです:

echo "<ul class='pagination'>";

if ($current_page > 1) {
    $prev_page = $current_page - 1;
    echo "<li><a href='{$_SERVER['PHP_SELF']}?page=$prev_page'>&laquo;</a></li>";
}

for ($i = 1; $i <= $total_pages; $i++) {
    if ($i == $current_page) {
        echo "<li class='active'><a href='#'>$i</a></li>";
    } else {
        echo "<li><a href='{$_SERVER['PHP_SELF']}?page=$i'>$i</a></li>";
    }
}

if ($current_page < $total_pages) {
    $next_page = $current_page + 1;
    echo "<li><a href='{$_SERVER['PHP_SELF']}?page=$next_page'>&raquo;</a></li>";
}

echo "</ul>";
ログイン後にコピー

実際のアプリケーションでは、SQL インジェクションなどの悪意のある攻撃を防ぐためにコードの各ステップでセキュリティ検証を実行する必要があることに注意してください。

以上がPHPはデータページング機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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