就是比较常见的那种,同时查询两三个关键词,以空格分隔。然后进行查询。不需要太复杂,能简单的实现就行。怎么做啊?我想的是explode分隔出来出来?然后呢?

解决方案 »

  1.   

    然后循环数组拼装成 SQL语句.
      

  2.   

    同时查询两三个关键词?  select * from table where k like '%a%' or k like '%b%'   这样?
      

  3.   


    索德斯涅這麼多個like 想讓mysql 癱瘓...哈哈,關鍵是你的數據庫到底是怎麼設計的。然後怎麼個同時查詢三個關鍵詞法?
    3個表?還是一個表?三個字段還是一個字段,你都沒說清楚。
      

  4.   


    $key=$_GET['keywords'];
    $arr=(explode(" ",$key));
    foreach ($arr as $value)
    {
    $db->Query("prs","SELECT * FROM news WHERE `TITLE` LIKE '%$value%'");
    while($prt=$db->GetArray("prs"))
    {
    $search[] = $prt;
    }
    $qf->assign("search",$search);
    }
      

  5.   

    上面是我的代码,但是现在有个问题,就是$search里面会有重复的信息。比如说我的关键词是“关键词一 关键词二”
    然后会搜索出关键词一和关键词二的select的信息。可能某条信息既包括了“关键词一”又包括了“关键词二”,那么这个信息就会被输出两次。一次是被“关键词一”检索出来的,另一次是被“关键词二”检索出来的、怎么避免这个状况啊?
      

  6.   

    $key=$_GET['keywords'];
    $arr=preg_split("#\s+#",$key);$like = implode("%' OR `TITLE` LIKE '%",$arr);$db->Query("prs","SELECT * FROM news WHERE `TITLE` LIKE '%$value%'");
    while($prt=$db->GetArray("prs"))
    {
             $search[] = $prt;
    }
    $qf->assign("search",$search);
      

  7.   

    sorry..$value = implode("%' OR `TITLE` LIKE '%",$arr);