2012-06-22 77 views
2

目前我已經編寫了一個代碼,它只適用於關鍵字。此外,它不會處理多個條目。例如,如果我在數據庫中有兩次關鍵字「藍色」當我開始輸入「藍色」時,它會在搜索輸入框中顯示「藍色」兩次。其餘的代碼工作正常。我應該如何調整我的代碼?另外,如果一列有「藍色」&「綠色」作爲行;它顯示了完整的東西:「藍色&綠色」。我的php代碼:PHP SQL多個自動完成搜索

<?php 
$keyword = mysql_real_escape_string($_POST['keywords']); 
$sql = "SELECT * FROM job WHERE work='$keyword' or work LIKE 'ANOTHER_PARAMETER' LIMIT 5"; 
$result = mysql_query($sql); 
$numrows = mysql_num_rows($result); 
echo //details and run the loop 
?> 
+1

您缺少javascript部分。感謝您提供全面的代碼和建議, –

回答

1

您可以嘗試修改您的SQL DB。你可以有一列「work_ids」,另一列用於「與這些ID相對應的工作」。

對不起,我沒有回答你的問題的一部分,但感謝@ T恤老兄;我立即回憶它。如果我正在閱讀你的問題,你想在一個列中搜索多個關鍵字?如果是這樣,你可以這樣做:

$sql = mysql_query("SELECT work_id, work FROM job WHERE work like '%$q%' OR work like 'ANOTHER_PARAMETER'
ORDER BY work_id LIMIT 10");

你可以把你想要的「或」 S。

+0

。將關鍵字保存爲ID是一件好事。 – user188995

+0

@ user188995:隨時隨地。 – xan

1

考慮work是與它的價值「藍色」和「綠色」之列,代碼應該是:

"SELECT * FROM job WHERE work='$keyword' or work LIKE 'ANOTHER_PARAMETER' GROUP BY work LIMIT 5"; 

如果不是的話,我無法理解你的問題。

+0

是的,它工作。謝謝@ T恤帥哥。 – user188995

0

我不確定我完全遵循 - 看到創建響應的代碼可能會幫助我們多一點。

無論如何,從我理解你的問題的方式來看,這聽起來像你可能需要一羣人。

+0

我只需要包含命令。我是PHP的新手,我不習慣使用大號。的標準命令。所以,想想這個地方可以幫助我。 – user188995