私は連想配列の形でデータを送信するために次のhtmlファイルを持っています。フォームは、Jquery Ajax(送信ボタン不要)を使用して動的に送信されます。チェックボックスから配列の値を取得し、コンテンツを選択するクエリを動的に作成する
<html>
<form id="checkboxform" method="GET">
<input type="checkbox" name="navi[key1]" value="value1" <?php echo array_key_exists("value1",$navi)?"checked":""; ?>> Item1
<input type="checkbox" name="navi[key2]" value="value2" <?php echo array_key_exists("value2",$navi)?"checked":""; ?>> Item2
<input type="checkbox" name="navi[key3]" value="value3" <?php echo array_key_exists("value3",$navi)?"checked":""; ?>> Item3
</form>
</html>
次に、フォームを処理し、Mysqlデータベースからデータを選択するための次のPHPファイルがあります。クエリは、ユーザーがチェックする入力フィールドに応じて動的に生成されます。
<?php
if(isset($_GET['navi'])):
$navi=$_GET['navi'];
//foreach
foreach($navi as $key =>$value):
$query=$key."="."'".$value."'";
endforeach;
// run the query using PDO
$content = $db->getRows("SELECT * FROM products WHERE $query");
endif;
?>
私の質問は、「$クエリ」変数は、ユーザーが複数のチェックボックスを選択したことを提供した後、「OR」を追加するにはどうすればよい、以下の通りです。 Whickは次のようなクエリが生成されます。私のコード
SELECT * FROM products WHERE key1='value1' OR key2='value2' OR key3='value3'
をORせずに次のクエリを生成し、その正しいません。
SELECT * FROM products WHERE key1='value1' key2='value2' key3='value3'
あなたはこれを試すことができ、あなたに
私は同意しますそれ。 – Angie