こんにちは。可能であれば、検索スクリプトについてお手伝いさせていただきます。
3 種類の検索入力と送信ボタンを使用して、データベースから車両に関するデータを取得する検索機能があります。
入力 1: オプション リスト検索 (searcha)
入力 2: テキスト検索 (searchb)
入力 3: 2 つの単一選択検索を選択するボタン (1 つまたは 2 つのボタンを選択できます)
送信ボタンもあります。
検索を送信すると、次の PHP コードが実行されます。結果が表示されますが、それはデータベース内の最初の正しい結果と一致する場合のみです。送信された検索入力値のみを含む結果を検索できるようにしたいと考えています。
たとえば、入力 1 からオプションを選択し、入力 3 からラジオ ボタンを選択した場合、検索では両方の値を含む行のみが検索されます (それが意味がある場合)。
//乗り物 if (in_array($_POST['searcha'], $search_a_option_list)) { $stmt = $pdo->prepare('SELECT * FROM coun WHERE inth = ?'); $stmt->execute([ $_POST['searcha'] ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } else if ($_POST['searchb']) { $stmt = $pdo->prepare('SELECT * FROM coun WHERE bunty LIKE ?'); $stmt->execute([ '%' . $_POST['searchb'] . '%' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); else if (isset($_POST['radio1'], $_POST['radio2'])) { $stmt = $pdo->prepare('SELECT * FROM coun WHERE ref = ? OR ref1 = ?'); $stmt->execute([ 'In', 'On' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); else if (isset($_POST['radio1'])) { $stmt = $pdo->prepare('SELECT * FROM coun WHERE ref = ?'); $stmt->execute([ 'In' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); else if (isset($_POST['radio2'])) { $stmt = $pdo->prepare('SELECT * FROM coun WHERE ref1 = ?'); $stmt->execute([ 'オン' ]); $search_results = $stmt->fetchAll(PDO::FETCH_ASSOC); } それ以外 { $error = 'オプションが選択されていません!'; } ?>
入力された検索を反映するようにこのスクリプトを調整する簡単な方法はありますか?私は PHP を学び始めたばかりなので、適切なガイドがあれば完璧です。ありがとう。
まず第一に、2 つのラジオ ボタンを同時に選択する方法がわかりません。チェックボックスのことですか?あなたの質問について - とにかく、クエリを実行する必要がありますが、$_POST 値に基づいてクエリを構築する必要があります。
おそらく次のようになります:
リーリー