array_unique问题

时间:2011-05-03 05:18:39

标签: php sql arrays

我有一个搜索引擎类型的网站。它接受用户输入,将查询存储为$ q,爆炸查询并搜索数据库。然后,它会显示每个结果的名称和网址的结果。

例如,如果我搜索“计算机编程”... Stack Overflow,stackoverflow.com将是我的结果。但是,它会显示两次。 (一次用于计算机,一次用于编程。)

我尝试使用array_unique函数解决这个问题,但它不起作用。

任何帮助将不胜感激。

    // trim whitespace

$trimmed = trim($q);
// seperate key-phrases
$trimmed_array = explode(" ", $trimmed);

// remove duplicates

$clean_array = array_unique($trimmed_array);

//query dataabase
foreach ($clean_array as $trimm){
     $query = mysql_query("SELECT * FROM forumlist WHERE `keys` LIKE '%" . mysql_real_escape_string($trimm) . "%' ORDER BY rating DESC, total_ratings DESC") or die(mysql_error());

谢谢!

1 个答案:

答案 0 :(得分:2)

//query dataabase
$query = 'SELECT * FROM forumlist  ';
$where = array();
foreach ($clean_array as $trimm){
     $where[] = " `keys` LIKE '%" . mysql_real_escape_string($trimm) . "%' ";
}

if(!empty($where)){
    $query .= " WHERE ". implode(' OR ', $where);
}
$query .= " ORDER BY rating DESC, total_ratings DESC";
$result = mysql_query($query) or die(mysql_error());