検索フォームの実装では、ユーザーが検索用に 1 つのパラメータのみを入力できるようにします。ユーザーが複数のパラメータを指定できるようにするには、指定されたパラメータに基づいて検索クエリを動的に構築するようにコードを変更することを検討してください。
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 }
// Display the results as before, using a loop and echoing HTML for each result.
入力パラメータに基づいてクエリを動的に構築することで、ユーザーは検索フォームで複数のパラメータを指定し、結果を取得できるようになりました。ページには、指定された基準すべてに一致する学生が表示されます。
以上が複数の検索パラメータを受け入れるように単一パラメータの検索フォームを変更するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。