ホームページ >バックエンド開発 >PHPチュートリアル >複数の検索パラメータを受け入れるように単一パラメータの検索フォームを変更するにはどうすればよいですか?

複数の検索パラメータを受け入れるように単一パラメータの検索フォームを変更するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-15 07:55:08303ブラウズ

How Can I Modify a Single-Parameter Search Form to Accept Multiple Search Parameters?

複数のパラメータを含む検索フォーム

検索フォームの実装では、ユーザーが検索用に 1 つのパラメータのみを入力できるようにします。ユーザーが複数のパラメータを指定できるようにするには、指定されたパラメータに基づいて検索クエリを動的に構築するようにコードを変更することを検討してください。

検索フォーム (search.php)

if (
    (isset($_POST['id']) && !empty($_POST['id'])) ||
    (isset($_POST['major']) && !empty($_POST['major'])) ||
    (isset($_POST['college']) && !empty($_POST['college'])) ||
    (isset($_POST['name']) && !empty($_POST['name']))
) {
    $params = array();
    $wheres = array();
    
    if (isset($_POST['id']) && !empty($_POST['id'])) {
        $wheres[] = 'a.uid = :uid';
        $params[':uid'] = $_POST['id'];
    }
    
    if (isset($_POST['major']) && !empty($_POST['major'])) {
        $wheres[] = 'a.major = :major';
        $params[':major'] = $_POST['major'];
    }
    
    if (isset($_POST['college']) && !empty($_POST['college'])) {
        $wheres[] = 'a.college = :college';
        $params[':college'] = $_POST['college'];
    }
    
    if (isset($_POST['name']) && !empty($_POST['name'])) {
        $wheres[] = 'b.name LIKE :name';
        $params[':name'] = '%'.$_POST['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);
    }
    
    // ... prepare and execute the query ...
    
} else {
    // Handle the case when no parameters are set
}

結果ページ (results) .php)

// Display the results as before, using a loop and echoing HTML for each result.

入力パラメータに基づいてクエリを動的に構築することで、ユーザーは検索フォームで複数のパラメータを指定し、結果を取得できるようになりました。ページには、指定された基準すべてに一致する学生が表示されます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。