Désactiver sensibilité à la casse

Résolu
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   -  
Autumn`Tears Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

voila je récupere une chaine via un input text et je l'utilise pour faire une recherche sql.

Hors dans le sql il y a des majuscules ou non et le php est sensible à la casse du coup si je tapes d alors que je recherche un D ceci ne fonctionne pas

et

j'ai essayé la fonction strtolower mais le probleme s'inverse, je tapes D alors que je recherche un d il ne trouve plus rien :/

comment faire pour que TOUT passe ?

merci d'avance

4 réponses

Autumn`Tears Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   145
 
Salut,

Ta recherche se fait au niveau de SQL donc, et non pas de PHP ?
Fais ton strtolower côté PHP, et un LOWER côté SQL : SELECT LOWER(colonne)...
0
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   114
 
salut et merci de ta réponse

maintenant ceci ne me ressort plus que des résultats en minuscule ( si je met un D il ne renvoi rien )
0
Autumn`Tears Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   145
 
Est-ce que tu peux tester depuis ton gestionnaire SQL, ou éventuellement montrer ta requête ?
0
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   114
 
alors je précise :

c'est un moteur de recherche en ajax, les resultats sont donc des suggestions de pseudos selon les caracteres entrés :

// $_GET['w'] est le mot clef entré

$nb = strlen($_GET['w']); // nombre de caracteres du mot clef pour la recherche
$chk=$bdd->query("SELECT pseudo FROM users ");
while($ck=$chk->fetch()) {
$rech = substr($ck[0],0,$nb); // recupération du meme nombre de caractere
$rech = strtolower($rech); // le test \o/
if ($rech == $_GET['w']) { echo $ck[0].'<br/>'; } // si recherche trouvée
}

la dans le cas d trouve le D mais D ne trouve pas le D ( il y a un D dans ma base )
0
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   114
 
EDIT : si je le met le LOWER(pseudo) c'est tout l'inverse d trouve le d mais D ne trouve pas le d
0
Autumn`Tears Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   145
 
Essaie avec strotolower($_GET['w']). Ceci dit ça me paraît tout de même bizarre qu'ici il se préoccupe de la casse...
0
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   114
 
Yep sa roule avec le strtolower sur le $_GET['w'].

Par contre j'viens de remarqué qu'il est difficile comme ça partout :( j'ai encore du taff lol

( et oui si d != D alors tout le monde s'apel pareil :( )

Merci beaucoup :)
0
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   114
 
et du coup est-ce qu'il y a un moyen d'annuler le LOWER du sql ? ( question de présentation mon résultat s'affiche en minuscule et j'aurais aimé le metre normalement quoi )
0
Autumn`Tears Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   145
 
Tu devrais pouvoir enlever le $rech = strotolower($rech) et faire :
if (strotolower($rech) == strtolower($_GET['w']))
0
jiantox Messages postés 1092 Date d'inscription   Statut Membre Dernière intervention   114
 
sa roule, jte remerci :)
0
Autumn`Tears Messages postés 1054 Date d'inscription   Statut Membre Dernière intervention   145
 
You're welcome !
0