phpを使ってページング機能を実装する方法を詳しく解説

PHPz
リリース: 2023-04-06 12:20:01
オリジナル
3442 人が閲覧しました

PHP は、Web 開発やデータ処理の分野で広く使用されている、人気のあるサーバーサイド プログラミング言語です。 Web 開発では、ページの読み込み速度を最適化し、ユーザー エクスペリエンスを向上させるために、データのページング表示機能を実装する必要があることがよくあります。では、PHP でページング機能を実装するにはどうすればよいでしょうか?この記事では詳しく紹介していきます。

1. ページングの原理

PHP におけるページングの実装原理は、実際には非常に単純で、データの総量とデータの量に基づいて総ページ数を計算することです。各ページに表示されるデータ どのデータ項目を表示する必要があるかを決定するページ番号。たとえば、100 個のデータを持つデータ テーブル users があるとします。各ページに 10 個のデータが表示されるように指定すると、ページ数は 1 ページから 10 ページまでの合計 10 ページになります。 。

ページングを実装するには、通常、SQL ステートメントで LIMIT 句を使用してデータのページング クエリを実装する必要があります。 LIMIT 句の構文は次のとおりです。

SELECT * FROM 表名 LIMIT 开始位置,数据条数
ログイン後にコピー

このうち、開始位置は現在のページ番号から 1 を引いた値に各ページに表示されるデータ量を乗じた値、データ項目数はデータ量となります。各ページに表示する必要があります。たとえば、2 ページ目に 10 個のデータを表示する必要がある場合、SQL ステートメントは次のようになります。

SELECT * FROM users LIMIT 10, 10
ログイン後にコピー

このステートメントは 11 番目のデータから開始し、合計 10 個のデータをクエリします。 2 ページ目に必要なものが表示されます。

2. ページングの実装手順

ページングの原理に基づいて、ページング機能の実装を開始できます。ページング関数を実装する手順は次のとおりです:

1. 総データ量を取得する

PHP では、SQL ステートメントによる総データ量のクエリは非常に簡単で、COUNT 関数を使用するだけです。 。たとえば、次のステートメントを使用して、users テーブル内のデータの合計量をクエリできます。

$sql = "SELECT COUNT(*) as total FROM users";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$total = $row['total'];
ログイン後にコピー

このステートメントは、users テーブル内のデータの合計量をクエリし、結果を変数 ## に保存します。 #$total 真ん中。

2. 総ページ数の計算

総データ量と各ページに表示されるデータ量に基づいて、総ページ数を計算できます。 PHP では ceil 関数を使用して計算結果を切り上げることができます 計算式は

$totalPages = ceil($total / $pageSize);
ログイン後にコピー
このうち $totalPages は総ページ数、$total は総データ量、 $pageSize は、各ページに表示されるデータを表します。

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

ページング プロセス中に、現在のページ番号に基づいて表示されるデータをクエリする必要があります。 PHP では、$_GET 変数を使用して URL 内のパラメーターを取得できます。例:

$page = intval($_GET['page']);
ログイン後にコピー
ここでは、文字列を整数型に変換するために intval 関数が使用されます。 URL でページ番号が指定されていない場合、デフォルトのページ 1 が使用されます。

4. データ オフセットの計算

前述の SQL ステートメントの LIMIT 句と同様に、データをクエリする必要があるかどうかを判断するために、現在のページ番号に対応するデータ オフセットを計算する必要があります。エントリ。 PHP では、次の式を使用してデータ オフセットを計算できます。

$offset = ($page - 1) * $pageSize;
ログイン後にコピー
ここで、$offset はデータ オフセットを表し、$page は現在のページ番号を表し、$pageSize は各ページに表示されるデータの量を表します。ページ。

5. データをクエリする SQL ステートメントを構築する

上記の手順で計算されたデータ オフセットと各ページに表示されるデータ量に従って、クエリを実行する SQL ステートメントを構築できます。表示する必要があるデータ。たとえば、users テーブルの 2 ページ目に表示されるデータをクエリする SQL ステートメントは次のとおりです:

$sql = "SELECT * FROM users LIMIT 10, 10";
ログイン後にコピー
6. ページング リンクの表示

最後のステップは、ページング リンクをユーザーが別のページに簡単に切り替えることができるようにします。一般的に、ページ分割されたリンクは、HTML と CSS (

    タグや
  • タグなど)、およびページ分割されたリンクの外観を構造化する CSS スタイルを使用して実装できます。リンク。

    3. 完全なページング コード

    以下は、PHP と MySQL に基づいた完全なページング サンプル コードです。このコードは、

    index.php にページング関数を実装し、Web ページにクエリ結果を表示できます。

    <?php
      // 数据库连接信息
      $host = &#39;localhost&#39;;
      $user = &#39;root&#39;;
      $password = &#39;password&#39;;
      $db = &#39;test&#39;;
      $port = 3306;
    
      // 创建数据库连接
      $conn = mysqli_connect($host, $user, $password, $db, $port);
    
      // 查询总数据量
      $sql = "SELECT COUNT(*) as total FROM users";
      $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_assoc($result);
      $total = $row[&#39;total&#39;];
    
      // 计算总页数和当前页码
      $pageSize = 10;
      $totalPages = ceil($total / $pageSize);
      $page = isset($_GET[&#39;page&#39;]) ? intval($_GET[&#39;page&#39;]) : 1;
      if ($page < 1) $page = 1;
      if ($page > $totalPages) $page = $totalPages;
    
      // 计算数据偏移量并查询数据
      $offset = ($page - 1) * $pageSize;
      $sql = "SELECT * FROM users LIMIT $offset, $pageSize";
      $result = mysqli_query($conn, $sql);
    
      // 在网页中显示查询结果
      echo "<table>";
      echo "<tr><th>ID</th><th>Name</th><th>Email</th></tr>";
      while ($row = mysqli_fetch_assoc($result)) {
        echo "<tr><td>" . $row['id'] . "</td><td>" . $row['name'] . "</td><td>" . $row['email'] . "</td></tr>";
      }
      echo "</table>";
    
      // 显示分页链接
      echo "<ul>";
      for ($i = 1; $i <= $totalPages; $i++) {
        if ($i == $page) {
          echo "<li class=\"active\">{$i}</li>";
        } else {
          echo "<li><a href=\"index.php?page={$i}\">{$i}</a></li>";
        }
      }
      echo "</ul>";
    
      // 关闭数据库连接
      mysqli_close($conn);
    ?>
    ログイン後にコピー
    上記のコードは、基本的なページング関数を実装し、ページ上にクエリ結果とページング リンクを表示します。実際のアプリケーションでは、検索機能の追加やフィルタ条件、並べ替えなど、ニーズに応じてコードをカスタマイズできます。

    4. 概要

    ページング関数の実装は Web 開発における基本要件の 1 つであり、この記事では PHP でページング関数を実装する原則と手順を詳しく紹介します。この知識を習得すれば、ページング機能を簡単に実装し、Web サイトのパフォーマンスとユーザー エクスペリエンスを最適化できると思います。

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

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