php多条件查询问题,怎么过滤空值?

前台表单中有10多个表框,提交到后台,根据提交过来的的值进行查询,但有些表框没填是空值,请问后台接收的时候,怎么过滤掉空值,只把填写了数据的值拿来查询?
条件关系都是and。

不可能我把每个值都判断一下是否为空,再把不为空的值拿来组合SQL语句吧?

是的正如你所说有两种解决方案,第一种是采用PHP的方式,先判断数据的合法性,比如是否提交了空值(推荐使用,没有垃圾数据);第二种不做任何判断,空值也能提交到数据库,只是在SQL查询时过滤空值数据(不推荐使用,有垃圾数据)。


解决方案1(通过PHP过滤空值数据):

if ($_POST['字段'] == '') exit('<script type="text/javascript">alert("数据不合法!");history.back();</script>'); // 依此类推,逐一判断表单$_POST数据


解决方案2(通过SQL查询来过滤空值数据):

SELECT `字段名` FROM `表名` WHERE `字段1` NOT IN ('', NULL) AND `字段2` NOT IN ('', NULL) ...;


以上就是两种解决方案,我推荐两种方案组合使用,这样确保万无一失,如有问题欢迎追问~

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-18
<?php $where ='';
foreach ($array as $key=>$val){
if(trim($val)) {
if($where == '') {
$where = $key.'='.$val;
else {
$where . = ' AND '.$key.'='.$val;
}

}

}
?>本回答被提问者和网友采纳
第2个回答  2013-06-13
is null判断
相似回答