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

PHPでページング表示を実装する方法

PHPz
リリース: 2023-04-21 09:33:37
オリジナル
1192 人が閲覧しました

Web サイトのコンテンツが増え続けると、徐々にページに表示する必要が生じます。 PHPを使ってWebサイトを開発する場合、ページング表示をどのように実装するかは基礎スキルとなっています。この記事ではPHPでページング表示を実装する方法を紹介します。

1. ページング表示の概念

ページング表示とは、大きなデータ結果を複数のページに分割して表示することです。例えば、検索結果の表示や商品の表示などです。ページング表示は一般に、フロントエンド ページングとバックエンド ページングの 2 つの方法に分けられます。

フロントエンド ページング: フロントエンド ページングとは、クライアント側でデータ全体をスライスし、JavaScript 表示効果ブロックを通じてデータ ページングの目的を達成することを指します。このアプローチでは通常、すべてのデータが一度に抽出され (JSON または XML 形式で返されます)、JavaScript を介して表示されます。

バックエンド ページング: バックエンド ページングとは、サーバー側のページング データを指し、すべてのデータではなく、現在のページのデータのみを返します。このメソッドは通常、渡されたパラメータに基づいて現在のページ番号を決定し、SQL クエリ パラメータを使用して現在表示に必要なデータのみを取得します。最も一般的に使用されるのは、MySQL で提供される Limit ステートメントです。これにより、ページング機能を簡単に実装でき、PHP でデータ ページングを簡単に実行できるようになります。

2. PHPとMySQLを使ってページングを実装する

PHPとMySQLを使ってページング機能を実装する方法を詳しく紹介します。

  1. データベースへの接続

始める前に、MySQL データベースに接続する必要があります。 PDO または mysqli を使用してデータベースに接続できます。

//连接到MySQL数据库
$host = "localhost";
$user = "username";
$password = "password";
$database = "database";
$connect = mysqli_connect($host, $user, $password, $database);
ログイン後にコピー

?>

  1. レコードの総数を取得する

ページングを実装するには、ページングの目的で、最初にクエリ結果内のレコードの総数を取得する必要があります。 SQL ステートメントを通じてレコードの総数を取得できます。

// 获取记录总数
$sql = "SELECT COUNT(*) FROM table_name";
$result = mysqli_query($connect, $sql);
$row = mysqli_fetch_row($result);
$total = $row[0];
ログイン後にコピー

?>

  1. 各ページに表示されるレコード数を設定します

ページングで表示します以前は、ページごとに表示するレコード数を指定する必要がありました。通常、ページごとに 10 または 20 のレコードが表示されますが、必要に応じて調整できます。

//设定每页显示的记录数
$per_page = 10;
ログイン後にコピー

?>

  1. 総ページ数の計算

総レコード数の取得ページに表示されるレコードの数を計算すると、合計で何ページあるかを計算できます。

// 计算总页数 
$total_pages = ceil($total / $per_page);
ログイン後にコピー

?>

  1. 現在のページ番号を入力してください

ユーザーは目的のページに移動できます必要なページ番号を入力してください。したがって、最初に現在のページ番号を取得する必要があります (指定しない場合、デフォルトでページ 1 になります)。

// 获取当前页码
if (isset($_GET['page'])) {
    $page = $_GET['page'];
} else {
    $page = 1;
}
ログイン後にコピー

?>

  1. 開始レコード位置の計算

クエリを実行する前に、ページをどのレコードから開始するかを決めます。最初のページの場合は最初のレコードから開始しますが、他のページの場合は、現在のページ番号を通じてページの開始レコード位置を計算する必要があります。

// 计算起始记录位置
$start = ($page - 1) * $per_page;
ログイン後にコピー

?>

  1. データをクエリして表示します

開始レコード位置を取得した後、クエリを実行し、結果を HTML ドキュメントに出力できます。ここでは MySQL の Limit ステートメントが使用されます。

// 查询数据并显示
$sql = "SELECT * FROM table_name LIMIT $start, $per_page";
$result = mysqli_query($connect, $sql);
while ($row = mysqli_fetch_assoc($result)) {
    echo $row['column_name'];
}
ログイン後にコピー

?>

  1. ページ分割されたナビゲーション

最後のステップでは、ページ分割されたナビゲーションを作成します。ユーザーは目的のページに素早くジャンプできます。一般的なページネーション ナビゲーションには、数値リンク、「前のページ」および「次のページ」リンクが含まれます。ニーズに応じて、適切なページング ナビゲーションを選択できます。

// 分页链接
if ($total_pages > 1) {
    echo '';
}

?>

上記は、PHP と MySQL を使用したページングの短縮版です。

3. ページングで発生する可能性がある問題

ページングの実装過程で次の問題が発生する可能性があります:

  1. 総数を取得する方法レコードの数が異なります: MySQL の場合 レコードの総数を取得する一般的な方法は COUNT ステートメントを使用することですが、場合によっては十分な精度が得られない可能性があります。
  2. クエリ プロセスが遅い: データの量が非常に多い場合、ページング クエリによりクエリ プロセスが遅くなる可能性があります。この場合、キャッシュやデータ シャーディングなどの方法を使用してクエリ効率を最適化できます。 。
  3. SQL インジェクションの脆弱性: ユーザーが入力したページ番号やその他のパラメーターがフィルタリングされていない場合、SQL インジェクションの脆弱性が発生する可能性があります。データのフィルタリングと検証はコード内で実行する必要があります。

4. まとめ

上記の紹介を通じて、PHP でページングを実装する方法を明確に理解することができ、ページングの実装方法はデータベースによって異なることもわかります。実際のシナリオは異なりますが、一般的なプロセスは同じです。学生は自分で考え、さまざまな方法を使用してページング操作のエクスペリエンスと効率を向上させ、より良いユーザー エクスペリエンスを実現できます。

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

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