ホームページ >バックエンド開発 >PHPの問題 >PHPでページ番号を表示するクエリページングを実装する方法

PHPでページ番号を表示するクエリページングを実装する方法

PHPz
PHPzオリジナル
2023-03-29 10:10:471134ブラウズ

Web 開発では、データのクエリと表示は非常に一般的な操作です。クエリされたデータのページング表示には、対応するページ番号がページ上に表示される必要があります。これは、ユーザーがページめくり操作を容易にするために必要な要件です。この記事では、PHP コードを通じてクエリ ページングを実装し、リスト ページに対応するページ番号を表示する方法を説明します。

1. クエリ ページングの基本原則

完全なページング関数では、クエリ条件、ページング数、現在のページ番号などの複数の要素を考慮する必要があります。特定の実装では、最初にクエリ条件を通じて条件を満たすすべてのデータの合計数をクエリし、次にデータの総数と各ページに表示される数に基づいてページの総数を計算し、ページング クエリを実行する必要があります。 、最後にフロントエンドに対応するデータとページ番号を表示します。

具体的な処理は次のとおりです。

  1. クエリ条件を取得
  2. 条件を満たすデータの総量をクエリ
  3. 計算各ページに表示される番号に基づく合計ページ番号
  4. ユーザーが要求した現在のページ番号を取得します
  5. ページング クエリの開始位置を計算します
  6. ページング クエリを実行します操作
  7. データと対応するページをフロントエンド ページに表示します。 Page

2. PHP はクエリ ページングを実装します

次に、クエリ ページング関数を実装します。 PHPコードを通じて。

2.1 総量のクエリ

まず、条件を満たすデータの総量をクエリする必要があります。 items という名前のデータ テーブルがあり、その中にデータのステータスを示す status フィールドがあるとします。ステータス を持つすべてのデータ レコードの合計数をクエリする必要があります。 1、コードは次のとおりです:

// 连接数据库
$conn = mysqli_connect('<host>', '<username>', '<password>', '<database>');

// 构造查询SQL,获取符合条件的数据总数
$sql = "SELECT COUNT(*) AS total FROM `items` WHERE `status`=1";
$res = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($res);
$total = $row['total'];

このコードでは、まず mysqli_connect 関数を通じてデータベースに接続し、次にクエリ SQL を構築し、クエリ操作を実行します。 mysqli_query 関数を使用して、最後に mysqli_fetch_assoc 関数を使用してクエリ結果から合計数を取得します。

2.2 総ページ数と現在のページ番号を計算する

次に、ページに表示されている番号に基づいて、ユーザーが要求した総ページ数と現在のページ番号を計算する必要があります。各ページと総データ量。

// 定义每页显示的数据条数和当前请求的页码,默认为1和1
$limit = 10; // 每页显示的数据条数
$page = isset($_GET['page']) ? intval($_GET['page']) : 1; // 当前请求的页码

// 计算总页数
$totalPage = ceil($total / $limit);
if ($page > $totalPage || $page < 1) {
    $page = 1;
}

// 计算分页查询的起始位置
$offset = ($page - 1) * $limit;

このうち、リクエストパラメータに page パラメータが存在するかどうかを isset 関数で確認し、存在する場合は 関数で変換します。 intval 関数。整数です。そうでない場合は、デフォルトで最初のページになります。次に、ceil関数により総ページ数を計算し、要求されたページ番号の妥当性を判定します。

最後に、データベース内でページング クエリを実行するために、ページング クエリの開始位置を計算する必要があります。単純な乗算演算を使用して、データのクエリが開始されるオフセットを計算します。

2.3 ページング クエリの実行

総データ量、総ページ数、クエリ オフセットを使用して、ページング クエリを実行できます。以下は、ページング データをクエリするコード例です。

// 查询数据(以status字段为1的数据为例)
$sql = "SELECT * FROM `items` WHERE `status`=1 LIMIT {$offset},{$limit}";
$res = mysqli_query($conn, $sql);
$rows = mysqli_fetch_all($res, MYSQLI_ASSOC);

このコード スニペットは、クエリ オフセットとページごとの表示数を SQL ステートメントの LIMIT キーワードに渡して、ページングを実行します。クエリ操作です。クエリ結果は mysqli_fetch_all 関数を通じて取得され、PHP 配列の形式で呼び出し元に返されます。

2.4 ページングでのページ番号の表示

最後に、クエリ結果と対応するページ番号をフロントエンド ページに表示する必要があります。ページ番号を表示するには、通常、HTML の <ul> 要素と <code><li> 要素を使用して、各ページのページ番号リンクを <li>## で囲みます。 # 要素を使用し、

    要素を使用してすべてのページ番号リンクをラップします。
    <!-- 分页展示 -->
    <ul>
        <?php for ($i = 1; $i <= $totalPage; $i++) : ?>
            <li <?php if ($i == $page) echo &#39;class="active"&#39; ?>>
                <?php if ($i == $page) : ?>
                    <?php echo $i; ?>
                <?php else : ?>
                    <a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a>
                <?php endif; ?>
            </li>
        <?php endfor; ?>
    </ul>
    上記のコードでは、

    for ループを使用してすべてのページ番号を調べます。現在のページ番号については、対応する

  • に ## を追加します。 要素。フロントエンド スタイルの処理を容易にする #active クラス。同時に、条件ステートメントを使用して現在のページ番号の表示を処理します。現在のページ番号はリンクを追加する必要がなく、echo ステートメントを通じて直接出力できます。一方、他のページは番号は <a> 要素でリンクを追加する必要があります。 3. 概要

    この記事では、PHP を介してクエリ ページングを実装する方法と、フロントエンド ページにページング ページ番号を表示する方法を紹介します。ページング機能の実装は Web 開発ではよくある作業ですが、この記事の紹介によって、皆さんもページング機能についての理解が深まったと思います。

    以上がPHPでページ番号を表示するクエリページングを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。