• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

多条件动态筛选,该如何处理

php 搞代码 3年前 (2022-01-24) 19次浏览 已收录 0个评论

多条件动态筛选
价格:1000 2000 3000
时间:2001 2002 2003
清除价格 清除时间 全部清除

现在点1000 已经有内容出来,不过MYSQL语句错误,再点一下2001,符合两个条件的内容也出来了,SQL没有提示错误。

$result=mysql_query(‘select * from news_c where title=’.$title.’ or f_id=’.$f_id.” );
现在要怎么样改sql才不会因为只点了一个条件而*本5文来源gaodai$ma#com搞$$代**码)网@搞代码gaodaima出错。

——解决方案——————–
根据传入参数的数量,动态组装 sql 串
——解决方案——————–
给你一个测试例

PHP code

$jg = array(1000, 2000, 3000);$sj = array(2001, 2002, 2003);if(isset($_GET['act'])) { $k = substr($_GET['act'], 3); unset($_GET['act']); if($k == 'all') $_GET = array(); else unset($_GET[$k]);} echo '
价格:';$param = getparam('jg');foreach($jg as $v) echo " $v";echo '
时间:';$param = getparam('sj');foreach($sj as $v) echo " $v";$param = http_build_query($_GET);echo "

清除价格 清除时间 全部清除";echo "

select * from tbl_name " . expr();function getparam($k) { $param = $_GET; if(isset($_GET[$k])) unset($param[$k]); $param[$k] = ''; return http_build_query($param);}function expr($expr='and') { if(! $_GET) return ''; foreach($_GET as $k=>$v) $r[] = "$k='$v'"; return 'where ' . join(" $expr ", $r);}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:多条件动态筛选,该如何处理
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址