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

Résolu/Fermé
IIwayII Messages postés 27 Date d'inscription vendredi 12 mars 2021 Statut Membre Dernière intervention 23 juin 2021 - 23 juin 2021 à 14:42
jee pee Messages postés 40476 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 novembre 2024 - 23 juin 2021 à 15:06
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';
}
?>
A voir également:

2 réponses

jee pee Messages postés 40476 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 26 novembre 2024 9 428
Modifié le 23 juin 2021 à 15:06
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

1
IIwayII Messages postés 27 Date d'inscription vendredi 12 mars 2021 Statut Membre Dernière intervention 23 juin 2021
23 juin 2021 à 15:01
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...
0