Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2010, 22h04   #1
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Par défaut Problème pour comparer des valeurs avec accent

Bonjour,
Je ne comprends pas un truc.

J'ai un formulaire qui ajoute des clients dans une base de donnée.
Code :
1
2
3
4
 
	$sql_client = "SELECT id_clients,fd_name, fd_firstname FROM tb_clients WHERE id_clients LIKE ".$_POST['id_client']." OR (fd_name LIKE '".htmlentities($_POST['name'])."' AND fd_firstname LIKE '".htmlentities($_POST['firstname'])."')";
	$query_client = mysql_query($sql_client)or die(mysql_error());
	echo $nb_client = mysql_num_rows($query_client);
On voir ci-dessous qui si les client existent déjà en fonction du nom et prénom, $nb_client retourne 1, et donc ensuite, il n'y aura pas d'insertion, mais un message d'erreur.

Le problème c'est que ça marche avec les valeurs sans accent, mais pour ceux qui en ont eux, $nb_client retourne 0 alors qu'il devrait retourner 1.

Je crois savoir pourquoi.
Si je rentre José dans le champs prénom, par exemple cette valeur sera comparé avec José dans la base de donnée.

Alors j'ai ajouté
Code php :
htmlentities($_POST['firstname'])
qui devrait changer la valeur José en José dans mon
Code php :
$_POST['firstname']

Simplement ça ne marche toujours pas. $nb_client retourne toujours 0 alors qu'il devrait retourner 1, puisqu'il existe.
J'aimerais juste encore préciser que dans mon exemple ci-dessus, considérons que le nom est également identique, dans le formulaire que dans la base de donnée.

Une simple idée?
Merci
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 22h58   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Bonjour,

tu peux faire un

Code sql :
1
2
 
SHOW CREATE TABLE taTable;

et voir si tu es bien en case insensitive (_ci) à la fin de ton CHARSET
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2010, 23h31   #3
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
Ben je ne vois pas trop comment.

Dans ma base de donnée, si je regarde sous Oération, je vois sous Collation : latin1_swedish_ci et aussi bien sous la table tb_clients
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 08h36   #4
Débutant
 
Inscription : mai 2005
Messages : 1 957
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : mai 2005
Messages : 1 957
Points : 615
Points : 615
J'ai résolu mon problème en remplaçant ceci
Code PHP :
1
2
 
htmlentities($_POST['firstname'])
par ceci
Code :
1
2
 
htmlentities($_POST['firstname'],ENT_COMPAT,'UTF-8')
Bonnes fêtes à tous!!
__________________
Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!
pierrot10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h16.


 
 
 
 
Partenaires

Hébergement Web