1 つ以上の (複数) パラメーターを含む検索フォーム
問題:
検索フォームの以前の実装では、一度に 1 つのパラメーターしか使用できませんでした。目標は、このフォームを変更して、ユーザーが 1 つ以上のパラメーターを入力し、対応する検索結果を受け取れるようにすることです。
解決策:
これを実現するには、次のようにします。 PHP コードを変更して、入力パラメータに基づいて WHERE 句を動的に構築します。
変更済みsearch.php:
<?php $wheres = []; $params = []; if (!empty($_POST['id']) && isset($_POST['id'])) { $wheres[] = 'a.uid = :uid'; $params[':uid'] = $_POST['id']; } if (!empty($_POST['major']) && isset($_POST['major'])) { $wheres[] = 'a.major = :major'; $params[':major'] = $_POST['major']; } if (!empty($_POST['college']) && isset($_POST['college'])) { $wheres[] = 'a.college = :college'; $params[':college'] = $_POST['college']; } if (!empty($_POST['name']) && isset($_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); } $stmt = $db->prepare($sql); $stmt->execute($params); // Display the results as in the original code
説明:
このアプローチを利用することで、ユーザーは複数のパラメーターを入力し、指定されたすべての基準に基づいて結果を取得できるようになります。
以上が複数の検索パラメータを受け入れるように検索フォームを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。