php mysql jquery AJAX自动完成区分大小写

时间:2011-02-13 15:34:43

标签: php jquery autocomplete jquery-autocomplete autosuggest

在我的php脚本中,

$names = $_GET['part'];
$result = mysql_query("SELECT * FROM  namestable where names LIKE'%$names%' LIMIT 10");
while ($row = mysql_fetch_assoc($result)) {
        $colors[]=$row['publishers'];
}

检查匹配并运作良好。

但是假设我的桌子有一个名字Alfred,只有当我输入Alfr并且如果我输入alfr

时,该建议才会显示

1 个答案:

答案 0 :(得分:1)

如果您使用不区分大小写的排序规则,例如utf8_general_ci,则您提供的示例将有效。 (有关详细信息,请参阅MySQL Character Set Support手册部分。)

或者,您可以简单地使用LOWER函数,如下所示:

$names = strtolower(mysql_real_escape_string($_GET['part']));
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");

顺便提一下,如果你试图捕捉到除了简单的大小写更改之外的差异,你也可以使用MySQL的SOUNDEX函数来获取和找到听起来相似的字符串的匹配。

顺便说一句,您需要在$ names变量上使用mysql_real_escape_string,或者(更好的是)通过mysqli或PDO接口使用预准备语句。