ホームページ > バックエンド開発 > PHPチュートリアル > PHP で複数のパラメータを含む動的検索フォームを構築するにはどうすればよいですか?

PHP で複数のパラメータを含む動的検索フォームを構築するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-26 19:44:10
オリジナル
684 人が閲覧しました

How to Build a Dynamic Search Form with Multiple Parameters in PHP?

1 つ以上の (複数) パラメーターを含む検索フォーム

ユーザーが複数のパラメーターを入力できる検索フォームを作成する場合、検索結果がどのように表示されるかを考慮することが重要です。

この例では、検索フォームに ID、名前、専攻、大学の個別の入力フィールドがあります。次に、results.php ファイルは、個別の if/elseif ステートメントを使用して、これらの各パラメーターを個別に処理します。

ただし、ユーザーが 1 つ以上のパラメーターを入力できるようにするには、より動的なアプローチが必要です。これは、入力されたパラメータに基づいて SQL クエリの WHERE 句を動的に構築することで実現できます。

このアプローチを示す、results.php ファイルの改訂版を次に示します。

<?php

$wheres = array();
$params = array();

if (!empty($_GET['id'])) {
    $wheres[] = 'a.uid = :uid';
    $params[':uid'] = $_GET['id'];
}
if (!empty($_GET['major'])) {
    $wheres[] = 'a.major = :major';
    $params[':major'] = $_GET['major'];
}
if (!empty($_GET['name'])) {
    $wheres[] = 'b.name LIKE :name';
    $params[':name'] = '%'.$_GET['name'].'%';
}

$sql = "SELECT * 
        FROM user_details AS a
        JOIN user AS b ON a.uid = b.id";

if (!empty($wheres)) {
    $sql .= " WHERE " . implode(' AND ', $wheres);
}

$stmt = $db->prepare($sql);
$stmt->execute($params);

while ($student = $stmt->fetch()) {
    echo '
        <tr>
            <td>'.$student['uid'].'</td>
            <td>'.$student['name'].'</td>
            <td>'.$student['major'].'</td>
            <td>'.$student['college'].'</td>
            <td><a href="?m=profile&amp;id='.$student['id'].'">
ログイン後にコピー

このコードは、入力されたパラメーターに基づいて WHERE 句を動的に構築します。ユーザーが名前のみを入力した場合、クエリは名前のみでフィルター処理されます。ユーザーが名前と専攻の両方を入力すると、クエリは両方のパラメータでフィルタリングされます。

このアプローチにより、より柔軟でユーザー フレンドリーな検索エクスペリエンスが可能になります。

以上がPHP で複数のパラメータを含む動的検索フォームを構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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