2013-03-27 74 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,如果你遵循正常化的步骤,可能这些问题将在此期间自动排序并且您的数据库将更加有用。

相关问题