Fonction ne tenant pas compte de la casse

Fermé
Mickael86480 - 3 juin 2010 à 16:38
 java - 17 mars 2012 à 13:08
Bonjour, je souhaiterai savoir s'il existe un fonction en php ou en sql pour ne plus tenir compte de la casse (ne plus tenir compte de la différence majuscule/minuscule), les fonctions upper() et lower() ne fonctionnent pas puisqu'elles mettent en minuscule ou en majuscule toute la chaine or dans ma bdd, les noms des commerces sont écrit en majuscule et en minuscule.

Je m'explique, je dois faire un site qui regroupe tous les commerces de la ville. Dans un formulaire php, on doit rentrer le nom d'un commerce, ensuite je dois interroger ma base de données. Par exemple, un utilisateur rentre "chez toto" seulement dans ma bdd le commerce ce nomme "chez Toto" mais je dois quand même afficher les informations concernant "chez Toto" bien qu'il n'ait pas entré le nom correctement. Ainsi je ne dois pas tenir compte de la casse.

J'espère avoir été assez clair

Auriez-vous une idée svp?

merci d'avance
A voir également:

15 réponses

Non, elle n'est pas correcte car
1) comme constaté dans ton post #5 et expliqué dans mon post #6, en MySQL, tu n'as pas le droit d'utiliser || comme opérateur de concaténation puisqu'il symbolise déjà le OU logique. Tu dois utiliser la fonction CONCAT().
2) en supposant que les apostrophes (') qui encadrent nom_com dans ta requête sont en fait des délimiteurs de colonne (comme le ' sous Linux), tu exiges dans ta requête que la colonne nom_com contienne '||upper(' suivi du nom du commerce saisi suivi de ')||' (tu as écrit upper dans la chaine) tout en demandant que le nom du commerce saisi soit égal à nom_com.
2bis) si les apostrophes sont bien des délimiteurs de chaine, tu cherches à savoir si '||upper(' suivi du nom du commerce saisi suivi de ')||' est compris dans la constante 'nom_com'
3) Si t'as copié/collé ta requête, alors il y a souci car ton tout dernier nom_com est précédé d'une apostrophe sans correspondance.

Avec un peu plus d'attention, tu aurais écrit
Select *
From t1
where upper(nom_com) like upper(concat('%','$NomCommerce','%'))

[EDIT] j'enlève les accents graves autour de nom_com car ils servent à rien et sont affichés en apostrophes par CCM
2