扫码关注官方订阅号
就像这样,多个条件检索怎么做,求大神指点
人生最曼妙的风景,竟是内心的淡定与从容!
直接上代码:
$query = []; $valid = ['type', 'area', 'year', 'person']; // 有效的查询Key:类型/地区/年代/明星 foreach($_GET AS $queryName) { // 查询全部时,直接忽略该条件 if( ($_GET[$queryName] !== 'all') && in_array($queryName, $valid) ) { $query[$queryName] = $_GET[$queryName]; } } $where = count($query) ? 'WHERE '.implode(',', $query) : ''; $result = $db->query("SELECT * FROM tableName {$where}");
这些条件就是一个分类啊。 各种分类下的交集就好了。 mysql下用where语句就好,用and连接
拼接sql语句的活。设置一个数组$search,保存提交过来的条件值,比如$search['type']=$_GET['type'],把每个条件都赋值一次。在拼接sql之前在对每个条件进行判断,比如if($search['type']) $query .= ' AND type=?';$bind[] = $search['type']; 当条件不为空时拼接sql,否则就不拼接。
简洁,不错,拼接问题可以再改一下就能用了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
直接上代码:
这些条件就是一个分类啊。
各种分类下的交集就好了。
mysql下用where语句就好,用and连接
拼接sql语句的活。设置一个数组$search,保存提交过来的条件值,比如$search['type']=$_GET['type'],把每个条件都赋值一次。在拼接sql之前在对每个条件进行判断,比如if($search['type']) $query .= ' AND type=?';$bind[] = $search['type'];
当条件不为空时拼接sql,否则就不拼接。
简洁,不错,拼接问题可以再改一下就能用了