mysql - 在逗号分隔的文本字段中查找匹配项

时间:2013-03-27 14:30:45

标签: php jquery mysql autosuggest

我的(MySQL)数据库输出有问题。

attractionData数据库

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

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

在网站上我有一个输入字段,它有autoSuggest功能。 所以在我的jQuery中,我有一个.keyup事件,它将数据发送到ajax文件,而ajax文件输出建议列表(autosuggest)。

所以现在如果输入“castle a ...”输入,它将输出“1”(我输出id)。 如果我输入“博物馆a”,它将返回“2”。

所以我的问题是......如果我输入“fakecastle”它会返回“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>";
}

任何帮助将不胜感激

Ty,Sebastian

1 个答案:

答案 0 :(得分:1)

了解数据库规范化hereherehere,如果您按照规范化步骤进行,可能会在此期间自动整理这些问题并且您的数据库会更多是有用的。