php mysql AJAX de jquery autocomplete de la casse
dans mon script 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'];
}
vérifie les correspondances et fonctionne bien.
mais supposons que ma table ait un nom Alfred, la suggestion Apparaîtra seulement si je tape Alfr
et n'apparaît pas si je tape alfr
1 réponses
l'exemple que vous avez fourni fonctionnera si vous utilisez une collation insensible à la casse telle que utf8_general_ci
. (Voir la section manuel MySQL support de jeu de caractères pour plus d'informations.)
alternativement, vous pouvez simplement utiliser la fonction inférieur comme suit:
$names = strtolower(mysql_real_escape_string($_GET['part']));
$result = mysql_query("SELECT * FROM namestable WHERE names LIKE LOWER('%$names%') LIMIT 10");
soit dit en passant, si vous tentez d'attraper des différences au-delà de simples changements de cas, vous pouvez également utiliser MySQL SOUNDEX fonction pour obtenir et trouver une correspondance pour des cordes qui sonne similaire.
incidemment, vous devez utiliser mysql_real_escape_string sur votre variable $names, ou (mieux encore) utiliser des déclarations préparées via les interfaces mysqli ou PDO.