2011-07-25 139 views
0

我有一個簡單的jQuery/PHP自動完成文本框,它可以從mySQL獲取匹配結果。在我的情況下,如果一個在DB是需要關於修改mySQL的幫助MATCH AGAINST查詢

Brand new iPhone and iPod case 

和$ q是

iph 

文本框不會彈出上述產品的名稱,我選擇它,直到我寫的完整的匹配詞。

使用通配符我得到我預期的結果,但是當$ q是

iphone ipod 

我不會得到上述產品的名稱。

$q = $_GET["q"]; 
WHERE name LIKE '%$q%' 

我現在擁有的是下面這樣,我的問題是,如果有一種方法可以有結果前寫完整的單詞,也支持iPhone的iPod的問題。

$q = $_GET["q"]; 
$words = explode(" ", $q); 
$all = mysql_real_escape_string(implode(" +",$words)); 
WHERE MATCH (name) AGAINST ('+" . $all . "' IN BOOLEAN MODE) 

回答

0
$all = mysql_real_escape_string(implode("* +",$words)); 


WHERE MATCH (name) AGAINST ('+" . $all . "*' IN BOOLEAN MODE) 
+0

很好,謝謝! – EnexoOnoma

+0

順便說一句:你可能想要做一個'$ words = array_filter($ words);'以防止人們使用多個空格時的空匹配。 – Wrikken