ホームページ > バックエンド開発 > PHPの問題 > PHP でページングとクエリ関数を実装する方法を例で説明します。

PHP でページングとクエリ関数を実装する方法を例で説明します。

PHPz
リリース: 2023-04-06 13:06:02
オリジナル
940 人が閲覧しました

Web ページでは、記事リストや製品リストなど、より多くのデータを表示する必要がある場合、ユーザーがより便利に閲覧できるようにデータをページ分割する必要があることがよくあります。ページング機能を実装した Web ページでは、ユーザーが必要なデータをより正確にフィルタリングできるように、いくつかのクエリ条件を追加する必要がある場合があります。では、PHP でページングとクエリ関数を実装するにはどうすればよいでしょうか?以下、具体的な実装方法を紹介していきます。

まず、ページングの実装を確認してみましょう。

ページング機能を実装したい場合、通常、データベース内で LIMIT と OFFSET という 2 つのキーワードを使用する必要があります。このうち、LIMITはある位置から取得するレコードの最大数を示し、OFFSETは取得する位置を示します。通常、これら 2 つのキーワードの値を計算できます。式は次のとおりです: LIMIT ($page - 1) * $pagesize, $pagesize。

実際のアプリケーションでは、次の点にも注意する必要があります。

  1. 総ページ数とページ数を計算するには、データの総数を取得する必要があります。現在のページの前後のページ番号;
  2. 各ページに表示されるデータの数をコードで設定する必要があります (通常は 10、20、30 など);
  3. ユーザーはページ ジャンプ操作を実行できます。つまり、指定されたページ番号を持つデータ ページに移動できます。

上記の内容はページングの基本的な知識です。ページングの実装に慣れていない読者は、最初にいくつかの関連情報を読むことができます。

次に、クエリによるページング機能の実装方法を見てみましょう。

クエリによるページングの機能については、実装時にページングとクエリの 2 つの部分をそれぞれ考慮する必要があります。以下、この2つの部分をそれぞれ紹介していきます。

1. ページング

ページングの実装方法は上で紹介したものと似ていますが、若干の微調整が必​​要です。具体的な実装方法は以下の通りです。

  1. クエリ結果の総数を取得します。

クエリ結果の総数は、後で総ページ数と前後のページ番号を計算するために必要な基礎データであり、次の SELECT count(*) ステートメントによって取得できます。 SQL。例は以下のとおりです。

SELECT count(*) as total FROM table WHERE condition;
ログイン後にコピー

このうち、totalはクエリ結果の総数です。

  1. ユーザーが選択したクエリ条件に基づいてフィルタリングとページングを行います。

この部分は比較的複雑なので、特定のビジネス シナリオと組み合わせて検討する必要があります。オンライン モールを例にとると、製品タイプをフィルタリングしたい場合は、ユーザーが目的のタイプを選択できるドロップダウン メニューをフロントエンド ページに追加する必要があります。次に、フロントエンド ページから送信されたクエリ条件が SQL ステートメントに組み立てられ、ページング アルゴリズムによってページングが実行され、最終的にページング結果が表示されます。

次に、具体的なコードの実装を見てみましょう。

最初に合計数を取得するコード:

$sql = "SELECT count(*) as total FROM table WHERE condition";
$result = $db->query($sql);
$row = $result->fetch_assoc();
$total = $row['total'];
ログイン後にコピー

次に SQL ステートメントを組み立ててページングを実行するコード:

$page = $_GET['page'] ? $_GET['page'] : 1;
$pagesize = 10;

$offset = ($page - 1) * $pagesize;

$sql = "SELECT * FROM table WHERE condition";

if (isset($_GET['type']) && !empty($_GET['type'])) {
    $type = $_GET['type'];
    $sql .= " AND type = '$type'";
}

$sql .= " ORDER BY id DESC LIMIT $offset, $pagesize";

$result = $db->query($sql);
ログイン後にコピー

このうち、$page は現在のページ番号、$pagesize は各ページを表し、ページに表示されるデータの量、$offset はデータの取得を開始する位置を示します。フロントエンドから送信されたクエリ条件に従って、SQL ステートメントを組み立て、ページング用の LIMIT および OFFSET キーワードを追加し、最後に $db オブジェクトを通じてクエリ メソッドを呼び出して SQL ステートメントを実行します。

2. クエリ

クエリ関数を実装するときは、通常、クエリ条件をパラメータとして渡し、クエリ条件に基づいてフィルタリングする必要があります。たとえば、製品名で検索したい場合は、ユーザーがクエリしたい製品名を入力できるように、フロントエンド ページにクエリ ボックスを追加する必要があります。次に、フロントエンド ページから送信されたクエリ条件が SQL ステートメントに組み立てられ、最終的にクエリ結果がページに表示されます。

次に、具体的なコードの実装を見てみましょう。

最初はクエリのコードです:

$name = $_GET['name'];
$sql = "SELECT count(*) as total FROM table WHERE name LIKE '%$name%'";
$result = $db->query($sql);
$row = $result->fetch_assoc();
$total = $row['total'];
ログイン後にコピー

次に SQL ステートメントとページングを組み立てるコードです:

$page = $_GET['page'] ? $_GET['page'] : 1;
$pagesize = 10;

$offset = ($page - 1) * $pagesize;

$sql = "SELECT * FROM table WHERE name LIKE '%$name%' ORDER BY id DESC LIMIT $offset, $pagesize";

$result = $db->query($sql);
ログイン後にコピー

このうち、$name はクエリのキーワードを表します。 LIKE を通じてキーワードはあいまい一致されます。フロントエンドから送信されたクエリ条件に従って、SQL ステートメントを組み立て、ページング用の LIMIT および OFFSET キーワードを追加し、最後に $db オブジェクトを通じてクエリ メソッドを呼び出して SQL ステートメントを実行します。

まとめ

以上がPHPでクエリによるページングを実装する具体的な方法です。実際のアプリケーションでは、より優れたユーザー エクスペリエンスとパフォーマンスを達成するために、特定のビジネス シナリオに基づいて最適化および改善する必要があります。上記の内容がすべての開発者にとって役立つことを願っています。

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

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