像安居客、51JOB等网站的多条件搜索是怎么实现的?望高人指点。
房产网站,用户可以用多种要求(区域、面积、房型、单价)等条件要素组合检索;招聘网站同样类似的搜索是怎么弄的?
给分较少,希望不要介意!

解决方案 »

  1.   

    这种一般是拼接SQL语句或者用存储过程。但是无一例外的都要对条件进行空判断,如果为空,那么就不使用这个条件,或者查询这个条件的全部数据
      

  2.   

    我就是用的拼接,在where处,人家不填的,就不插这个条件
      

  3.   

    你说的是不是就是www.qidian.com这样的级联搜索
      

  4.   

    偶是处理一下条件后,拼接sql
      

  5.   

    给你一个:
     $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 .= " )";
    }
     }
      

  6.   

    $tiaojian = "where 条件1字段名 = 条件1 and 条件2字段名 = 条件2  ..."$sql = "select * from 表名 $tiaojian"
      

  7.   


    $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;
      

  8.   

    我是PHP初学者,迫切需要案例代码,谁能提供?谁能帮助,感激不尽!
      

  9.   

    SQL 的多条件检索很简单~只不过是在WHERE后面多加几个条件,之间用逻辑运算符连接就行~比如 SELECT * FROM ... WHERE ... = ... AND ... LIKE ...