【发布时间】:2016-04-06 11:16:03
【问题描述】:
我有以下 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>
然后我有以下 php 文件来处理表单并从 Mysql 数据库中选择数据。查询是根据用户检查的输入字段动态生成的。
<?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;
?>
我的问题如下,如果用户选择了多个复选框,如何在“$query”变量之后添加“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'
谢谢
【问题讨论】: