Page 1 sur 1

Je ne trouve pas l'erreur dans ma requête

Posté : 08 janv. 2008, 22:16
par zaknaou
Bonjour

Lorsque que je lance cette requete :
$req_select_info_2_1 = mysql_query("SELECT numero_rue_1, rue_1, code_postal_1, ville_1,
 pays_1, batiment_1, etage_1, porte_1 FROM inscription WHERE numero_rue_1 = 
'$select_numero_rue_1' AND rue_1 = '$select_rue_1' AND code_postal_1 = '$select_code_postal_1'
 AND ville_1 = '$select_ville_1' AND pays_1 = '$select_pays_1' AND batiment_1 = 
'$select_batiment_1' AND etage_1 = '$select_etage_1' AND porte_1 = '$select_porte_1' AND 
identifiant != '$identifiant'") or die ('3 '.mysql_error());

Cette erreur apparait :
3 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' AND code_postal_1 = '$code_postal_1' AND ville_1 = '$villle_1' AND pays_
Et je n'arrive toujours pas à localiser l'erreur

Quelqu'un l'aurai t-il aperçue ? Merci.

Posté : 08 janv. 2008, 22:59
par AB
Et si tu sortais les variables de ta requête ?

Posté : 08 janv. 2008, 23:31
par zeus
Il faut savoir que, dans ce genre de message d'erreur, ce qui est juste après le "near '" est l'endroit précis de la requête auquel MySQL à planté.

Dans ton cas, il s'agit d'un quote (') juste avant le "AND code_postal_1=..."
Pour débuguer ce genre d'erreur, il faut commencer par afficher la requête générée

Pour cela, il faut commencer par plusieurs règles de base :
1/ on place la requête dans une variable, pas directement dans mysql_query()
exemple
$query = "SELECT ...";
$result = mysql_query( $query );
alors que toi, tu utilises
$result = mysql_query( "SELECT ..." );
2/ on extrait les variables des chaines
exemple
$query = "SELECT id FROM table WHERE nom = '". $nom ."' AND prenom = '". $prenom ."'";
alors que toi, tu utilises
$query = "SELECT id FROM table WHERE nom = '$nom' AND prenom = '$prenom'";
3/ En cas d'erreur sur une requête, on affiche la requête générée
Exemple
$query = "SELECT ...";
echo $query;
(d'où l'importance de l'étape 1)

NOTE IMPORTANTE : tu n'es pas nouveau sur le forum. Tu sais donc qu'il faut toujours commencer par une recherche. Dans ce cas, tu aurais trouvé des tas de sujets.
De plus, je suis persuadé que ce que je viens de te dire, nous te l'avons déjà dit (je n'ai ni le temps, ni la patience de faire ces recherches pour toi, mais j'en suis persuadé).
Donc, je voudrais une bonne fois pour toute que tu te bouge et que tu essayes de comprendre ce qu'on te dit et que tu arrêtes de nous prendre pour des débugeurs.

Posté : 09 janv. 2008, 02:43
par Truc
NOTE IMPORTANTE : tu n'es pas nouveau sur le forum. Tu sais donc qu'il faut toujours commencer par une recherche. Dans ce cas, tu aurais trouvé des tas de sujets.
De plus, je suis persuadé que ce que je viens de te dire, nous te l'avons déjà dit (je n'ai ni le temps, ni la patience de faire ces recherches pour toi, mais j'en suis persuadé).
Donc, je voudrais une bonne fois pour toute que tu te bouge et que tu essayes de comprendre ce qu'on te dit et que tu arrêtes de nous prendre pour des débugeurs.
J'insiste également sur cette note !!
(j'allais faire la même remarque)

Posté : 09 janv. 2008, 18:51
par zaknaou
J'ai corrigé mes erreurs, mais la requete affiche toujours la même erreur. MAIS dés que $rue_1 ne contient plus de d'apostrophe il n'y a plus d'erreur donc l'erreur est généré à cause de '

Comment faire pour que même si $rue_1 contient un apostrophe je puissent entrer $rue_1 avec son apostrope

$rue_1 à pour valeur rue de la ty\'nes il y a donc bel et bien le \...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 09 janv. 2008, 18:56
par Elie
addslashes() ?

Posté : 09 janv. 2008, 19:33
par zaknaou
MERCI j'ai donc appliquer ça de cette facon et sa marche :
$req_adresse = "SELECT numero_rue_1, rue_1, code_postal_1, ville_1, pays_1, batiment_1, etage_1, porte_1 FROM inscription WHERE numero_rue_1 = '".$select_numero_rue_1."' AND rue_1 = '".addslashes($select_rue_1)."' AND code_postal_1 = '".$select_code_postal_1."' AND ville_1 = '".$select_ville_1."' AND pays_1 = '".$select_pays_1."' AND batiment_1 = '".$select_batiment_1."' AND etage_1 = '".$select_etage_1."' AND porte_1 = '".$select_porte_1."' AND identifiant != '".$identifiant."'";
rue_1 = '".addslashes($select_rue_1)."'
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 09 janv. 2008, 21:03
par zeus
Mais tu te fous de nous ou quoi ???

:arrow: http://www.phpfrance.com/forums/viewtop ... ht=#226885
Quelle est la solution que nous t'avons donné dans ce post ?

Quand on te donne une solution, c'est pas une rustine, c'est une bonne pratique de développement.
Nous sommes déjà arrivé à clôturer tout tes posts, on peut recommencer :evil: