2013-03-27 114 views
0

我遇到了來自我的(MySQL)數據庫的輸出問題。mysql - 在逗號分隔的文本字段中查找匹配

attractionData數據庫

id | tags 
------------------------------------- 

1 | castle a, castle b, fakecastle c 
2 | museum a, fakemuseum b, museum c 
... 

而且在網站上我有一個輸入框,裏面有自動提示功能。 所以在我的jQuery中,我有一個.keyup事件,它將數據發送到ajax文件,並且ajax文件輸出建議列表(autosuggest)。

所以,現在如果我輸入「castle a ...」輸入它將輸出「1」(輸出id)。 如果我輸入「博物館a」,它將返回「2」。

所以我的問題是......是否有可能,如果我會輸入「facastcastle」它會返回「1」?我知道這可以用explode(',', $string)完成。

我一直在搞FIND_IN_SET(),但我不知何故沒有達到我想要的結果。 所以我仍然被困在

mysql_query("SELECT tags FROM attractionData WHERE (tags LIKE '$search%') ") $ search =輸入字段中的文本。

編輯

if(isset($_POST['search']) == true && empty($_POST['search']) == false){ 
    $search = $_POST['search']; 
    $search = mysql_real_escape_string($search); 

    $query = mysql_query("SELECT tags FROM attractionData WHERE (tags LIKE '$search%') ") 
    while(($row = mysql_fetch_assoc($query)) !== false){ 
     echo "<li class='auto'>".$row['friendEmail'] ."</li>"; 
} 

任何幫助,將不勝感激

泰,塞巴斯蒂安

+5

標準化您的表格,所有問題都會消失。停止使用'mysql_'函數。 – Kermit 2013-03-27 14:32:08

+0

你的「ajax」文件是什麼?你緩存結果? – 2013-03-27 14:37:57

+0

檢查編輯,我添加了ajax內容 – Sebastjan 2013-03-27 14:41:19

回答

1

閱讀有關數據庫規範化hereherehere,如果你遵循正常化的步驟,可能這些問題將在此期間自動排序並且您的數據庫將更加有用。

相關問題