有关多条件检索的问题 像安居客、51JOB等网站的多条件搜索是怎么实现的?望高人指点。房产网站,用户可以用多种要求(区域、面积、房型、单价)等条件要素组合检索;招聘网站同样类似的搜索是怎么弄的?给分较少,希望不要介意! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这种一般是拼接SQL语句或者用存储过程。但是无一例外的都要对条件进行空判断,如果为空,那么就不使用这个条件,或者查询这个条件的全部数据 我就是用的拼接,在where处,人家不填的,就不插这个条件 你说的是不是就是www.qidian.com这样的级联搜索 偶是处理一下条件后,拼接sql 给你一个: $query_string = "SELECT M.id as ID,M.Name as NAME,KP.Name as KNPOINT,CH.Name as CHAPTER,C.Name as COURSE,S.SubjectName as SUBJECT from Subjects S inner join Courses C on S.id=C.subjectid inner join Chapters CH on C.id=CH.courseid inner join knpoint KP on CH.id=KP.chapterid inner join materials M on KP.id=M.knpointid where 1=1 And M.status='已审核' "; if($query_subject != "") $query_string .= " AND S.SubjectName like '%" . $query_subject . "%' "; if($query_course != "") $query_string .= " AND C.Name like '%" . $query_course . "%' "; if($query_chapter != "") $query_string .= " AND CH.Name like '%" . $query_chapter . "%' "; if($query_knpoint != "") $query_string .= " AND KP.Name like '%" . $query_knpoint . "%' "; if($query_materail != "") $query_string .= " AND ( M.Name like '%" . $query_materail . "%' or M.keywords like '%" . $query_materail . "%') "; if($query_key!="") { $query_keywords = preg_split ("/[\s,]+/", $query_key); if(count($query_keywords)>0) { $query_string .= " AND ( "; for($i=0;$i<count($query_keywords);$i++) { if($i==0) { $query_string .=" M.keywords like '%".$query_keywords[$i]."%' "; } else { $query_string .=" or M.keywords like '%".$query_keywords[$i]."%' "; } } $query_string .= " )"; } } $tiaojian = "where 条件1字段名 = 条件1 and 条件2字段名 = 条件2 ..."$sql = "select * from 表名 $tiaojian" $where="where 1";//关键字$_POST['key'] && $where.=" and `title` like '%".$_POST['key']."%'";//面积$_POST['are1'] && $where.=" and `are`>='".$_POST['are1']."'";$_POST['are2'] && $where.=" and `are`<='".$_POST['are2']."'";//其他类似,就是个根据客户选择和输入的条件进行sql where的拼接。$sql = "select * from tablename ".$where; 我是PHP初学者,迫切需要案例代码,谁能提供?谁能帮助,感激不尽! SQL 的多条件检索很简单~只不过是在WHERE后面多加几个条件,之间用逻辑运算符连接就行~比如 SELECT * FROM ... WHERE ... = ... AND ... LIKE ... 请问如何将mysql_fetch_object得到的对象塞到数组里面? 用javascript怎么编码地址传参中文在php怎么解码 急!!function中对数组的修改无效!! mysql查询问题,like的反向使用? 差最后一步了,帮助。 使用mail()时出现以下提示 如何解决 浏览器传递值获取问题! php不支持函数重载,怎么办? 小弟因要急做一php的购物demo,那位老兄手中有源代码或思路,mail一份给俺。先谢过了![email protected] 关于php分词搜索准确率,求思路 字符串中屏[]问题,在线等 for循环问题。
$query_string = "SELECT M.id as ID,M.Name as NAME,KP.Name as KNPOINT,CH.Name as CHAPTER,C.Name as COURSE,S.SubjectName as SUBJECT
from Subjects S
inner join Courses C on S.id=C.subjectid
inner join Chapters CH on C.id=CH.courseid
inner join knpoint KP on CH.id=KP.chapterid
inner join materials M on KP.id=M.knpointid
where 1=1 And M.status='已审核' ";
if($query_subject != "")
$query_string .= " AND S.SubjectName like '%" . $query_subject . "%' ";
if($query_course != "")
$query_string .= " AND C.Name like '%" . $query_course . "%' ";
if($query_chapter != "")
$query_string .= " AND CH.Name like '%" . $query_chapter . "%' ";
if($query_knpoint != "")
$query_string .= " AND KP.Name like '%" . $query_knpoint . "%' ";
if($query_materail != "")
$query_string .= " AND ( M.Name like '%" . $query_materail . "%' or M.keywords like '%" . $query_materail . "%') ";
if($query_key!="")
{
$query_keywords = preg_split ("/[\s,]+/", $query_key);
if(count($query_keywords)>0)
{
$query_string .= " AND ( ";
for($i=0;$i<count($query_keywords);$i++)
{
if($i==0)
{
$query_string .=" M.keywords like '%".$query_keywords[$i]."%' ";
}
else
{
$query_string .=" or M.keywords like '%".$query_keywords[$i]."%' ";
}
}
$query_string .= " )";
}
}
$where="where 1";
//关键字
$_POST['key'] && $where.=" and `title` like '%".$_POST['key']."%'";
//面积
$_POST['are1'] && $where.=" and `are`>='".$_POST['are1']."'";
$_POST['are2'] && $where.=" and `are`<='".$_POST['are2']."'";
//其他类似,就是个根据客户选择和输入的条件进行sql where的拼接。$sql = "select * from tablename ".$where;