Web 開発では、データのクエリと表示は非常に一般的な操作です。クエリされたデータのページング表示には、対応するページ番号がページ上に表示される必要があります。これは、ユーザーがページめくり操作を容易にするために必要な要件です。この記事では、PHP コードを通じてクエリ ページングを実装し、リスト ページに対応するページ番号を表示する方法を説明します。
完全なページング関数では、クエリ条件、ページング数、現在のページ番号などの複数の要素を考慮する必要があります。特定の実装では、最初にクエリ条件を通じて条件を満たすすべてのデータの合計数をクエリし、次にデータの総数と各ページに表示される数に基づいてページの総数を計算し、ページング クエリを実行する必要があります。 、最後にフロントエンドに対応するデータとページ番号を表示します。
具体的な処理は次のとおりです。
次に、クエリ ページング関数を実装します。 PHPコードを通じて。
まず、条件を満たすデータの総量をクエリする必要があります。 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
関数を使用してクエリ結果から合計数を取得します。
次に、ページに表示されている番号に基づいて、ユーザーが要求した総ページ数と現在のページ番号を計算する必要があります。各ページと総データ量。
// 定义每页显示的数据条数和当前请求的页码,默认为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
関数により総ページ数を計算し、要求されたページ番号の妥当性を判定します。
最後に、データベース内でページング クエリを実行するために、ページング クエリの開始位置を計算する必要があります。単純な乗算演算を使用して、データのクエリが開始されるオフセットを計算します。
総データ量、総ページ数、クエリ オフセットを使用して、ページング クエリを実行できます。以下は、ページング データをクエリするコード例です。
// 查询数据(以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 配列の形式で呼び出し元に返されます。
最後に、クエリ結果と対応するページ番号をフロントエンド ページに表示する必要があります。ページ番号を表示するには、通常、HTML の <ul> 要素と <code><li>
要素を使用して、各ページのページ番号リンクを <li>## で囲みます。 # 要素を使用し、
要素を使用してすべてのページ番号リンクをラップします。
<!-- 分页展示 --> <ul> <?php for ($i = 1; $i <= $totalPage; $i++) : ?> <li <?php if ($i == $page) echo 'class="active"' ?>> <?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でページ番号を表示するクエリページングを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。