php多条件查询问题,怎么过滤空值?
前台表单中有10多个表框,提交到后台,根据提交过来的的值进行查询,但有些表框没填是空值,请问后台接收的时候,怎么过滤掉空值,只把填写了数据的值拿来查询?条件关系都是and...
前台表单中有10多个表框,提交到后台,根据提交过来的的值进行查询,但有些表框没填是空值,请问后台接收的时候,怎么过滤掉空值,只把填写了数据的值拿来查询?
条件关系都是and。
不可能我把每个值都判断一下是否为空,再把不为空的值拿来组合SQL语句吧? 展开
条件关系都是and。
不可能我把每个值都判断一下是否为空,再把不为空的值拿来组合SQL语句吧? 展开
3个回答
展开全部
是的正如你所说有两种解决方案,第一种是采用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) ...;
以上就是两种解决方案,我推荐两种方案组合使用,这样确保万无一失,如有问题欢迎追问~
展开全部
<?php $where ='';
foreach ($array as $key=>$val){
if(trim($val)) {
if($where == '') {
$where = $key.'='.$val;
else {
$where . = ' AND '.$key.'='.$val;
}
}
}
?>
foreach ($array as $key=>$val){
if(trim($val)) {
if($where == '') {
$where = $key.'='.$val;
else {
$where . = ' AND '.$key.'='.$val;
}
}
}
?>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
is null判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询