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

php mysql jquery AJAX自动完成区分大小写,php,jquery,autocomplete,jquery-autocomplete,autosuggest,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时,

在我的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
时,建议不会出现。如果您使用的是不区分大小写的排序规则,例如
utf8\u general\u ci
,您提供的示例将起作用。(有关更多信息,请参阅MySQL手册部分。)

或者,您可以简单地使用以下函数:

$names = strtolower(mysql_real_escape_string($_GET['part']));
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");
顺便说一句,如果您试图捕捉简单大小写更改以外的差异,还可以使用MySQL的函数获取并查找声音相似的字符串的匹配项


顺便说一句,您需要在$names变量上使用mysql\u real\u escape\u字符串,或者(更好)通过mysqli或PDO接口使用准备好的语句。

那么你能建议我在代码中必须做的更正吗?文档中说,在soundex
中,str中的所有非字母字符都被忽略。
我也想包括数字。@blasteralfred我用一个简单的解决方案更新了我的答案。正如我所说,如果你想比较类似的发音单词,我提到的其他解决方案会更合适。不起作用。。我想我得花很多钱在我的代码上…:(