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

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

不可能我把每个值都判断一下是否为空,再把不为空的值拿来组合SQL语句吧?
展开
 我来答
易寄波Re
2013-06-14 · TA获得超过404个赞
知道答主
回答量:59
采纳率:0%
帮助的人:88.9万
展开全部

是的正如你所说有两种解决方案,第一种是采用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) ...;


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

奈蒙
推荐于2016-04-18 · TA获得超过211个赞
知道小有建树答主
回答量:491
采纳率:0%
帮助的人:213万
展开全部
<?php $where ='';
foreach ($array as $key=>$val){
if(trim($val)) {
if($where == '') {
$where = $key.'='.$val;
else {
$where . = ' AND '.$key.'='.$val;
}

}

}
?>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文飞子
2013-06-13 · 超过51用户采纳过TA的回答
知道小有建树答主
回答量:195
采纳率:0%
帮助的人:107万
展开全部
is null判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式