Faire une requête mysql sans prendre en compte la casse des caractères

[Résolu]
Signaler
Messages postés
28
Date d'inscription
vendredi 12 mars 2021
Statut
Membre
Dernière intervention
23 juin 2021
-
Messages postés
32574
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
4 août 2021
-
Bonjour,

Lorsque l'on s'inscrit sur mon site, j'ai mis une fonction ajax qui permet de savoir si le nom d'utilisateur est disponible ou non. Pour cela un autre fichier regarde si lorsqu'il recherche le nom d'utilisateur tapé il trouve quelques chose.
Sur Google Chrome ça marche parfaitement, mais je l'ai testé sur firefox et là, si par exemple on tape "pseudo" au lieu de "Pseudo" ça va nous dire que le pseudo est disponible alors que pas du tout !
Du coup j'ai cherché un peu et je pense que lors de ma requête mysql : 'SELECT id, pseudo FROM membres WHERE pseudo = :pseudo ', le WHERE de firefox doit prendre en compte la casse des caractères....

Alors, comment faire pour que lors de ma requête, il ne prennent pas en compte de si le pseudo est tapé en majuscules ou en minuscules ?


J'ai cherché un peu sur Internet, mais j'ai pas trouvé grand chose et ce que j'ai trouvé j'ai pas trop compris :/


Voilàà, merci d'avance :)

Voici mon code complet (au cas où) :
<?php
if (isset($_GET['username']) AND ($_GET['username']) !== NULL AND ($_GET['username']) !== "")
{

$username = $_GET['username'];
 
$bdd = new PDO('mysql:host=localhost;dbname=bdp;charset=utf8mb4', 'root', 'root');

$req = $bdd->prepare('SELECT id, pseudo FROM membres WHERE pseudo = :pseudo ');
$req->execute(array('pseudo' => $username));
$auteur_exist = $req->rowCount();
if($auteur_exist == 1)
{
	echo 1;
}
else{
	echo 0;
}
}
else {
	echo 'erreur';
}
?>

2 réponses

Messages postés
32574
Date d'inscription
mercredi 2 mai 2007
Statut
Modérateur
Dernière intervention
4 août 2021
7 853
Bonjour,

Si dans une requete sql on ne veut pas tenir compte des minuscules/majuscules, on peut convertir les 2 valeurs, majusucules ou minuscules avec
WHERE upper(pseudo) = upper(:pseudo)

ou
WHERE lower(pseudo) = lower(:pseudo)


et on peut aussi à la création forcer l'enregistrement de la valeur (majuscule ou minuscule) avec les mêmes fonctions

Messages postés
28
Date d'inscription
vendredi 12 mars 2021
Statut
Membre
Dernière intervention
23 juin 2021

Bon, ça remarche, je sais pas ce qui s'est passé mais bon temps mieux... J'ai enlevé des parties de script javascript au cas où pour voir si ça marchait, et ça été le cas, et ça a continué d'être le cas quand je les ai remises...