2013-07-24 66 views
0

我有我的網站上使用GET的搜索功能。我一直在試圖編寫一些能夠從GET帖子中取出單詞,然後使用SQL進行搜索的內容。這是我能夠做到的:多個關鍵字在選擇喜歡

$id = $_GET["search"]; 
$searchTerms = explode(' ', $id); 
$searchTermBits = array(); 
foreach ($searchTerms as $term) { 
    $term = trim($term); 
    if (!empty($term)) { 
     $searchTermBits[] = "Name LIKE '%$term%'" 
    } 
} 

$lol = mysql_query("SELECT * FROM database WHERE .implode(' AND ', $searchTermBits).") 

我不知道我在做什麼錯。我收到以下錯誤:

You have an error in your SQL syntax; 
check the manual that corresponds to your MySQL server 
version for the right syntax to use near '(' AND ', Array).' at line 1 
+0

這些條款是否適用於不同列的名稱? – Prix

+0

將你的SQL設置爲變量('$ lol =「SELECT ...'),回顯變量('echo $ lol;'),然後發送給'mysql_query()'。它是? – DACrosby

+0

不,這是同一列 –

回答

0
$lol = mysql_query("SELECT * FROM database WHERE .implode(' AND ', $searchTermBits).") 

應該

$lol = mysql_query("SELECT * FROM database WHERE ". implode(' AND ', $searchTermBits). "") 
+0

非常感謝你。 –

0

implode只是在你的情況下,字符串的一部分,你需要把它取出來,從報價:

mysql_query("SELECT * FROM database WHERE ".implode(' AND ', $searchTermBits)) 
0

你在雙引號裏面使用php implode函數,把它放在這樣的雙引號之外。

mysql_query("SELECT * FROM database WHERE ".implode(' AND ', $searchTermBits))