2011-02-13 43 views
2

在我的PHP腳本,PHP的MySQL jQuery的AJAX自動完成的情況下,靈敏度

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

檢查比賽和行之有效的。

但是假設我的表中有一個名字阿爾弗雷德,如果鍵入Alfr並沒有出現,如果我輸入alfr

回答

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接口使用準備好的語句。

+0

所以你可以建議我更正我必須在代碼中? – 2011-02-13 15:41:13

相關問題