Erreur syntaxe condition WHERE dans requete M

Fermé
RomRoz - 27 juin 2009 à 16:34
 RomRoz - 27 juin 2009 à 21:05
Bonjour,
Je dois mettre à jour une table MySQL dans un fichier php.

Voici la requete :

mysql_select_db($database_CC, $CC);
$action = mysql_query("UPDATE jos_cadeau SET ENVOYE = 1 WHERE CODE_CADEAU = '$lecode'", $CC) or die(mysql_error());

Mon problème est le suivant :
bien que toutes les variables soient bien définies ($lecode = 2 etc...), l'action ne se déroule pas, car '$lecode' est interprété comme '2' et non pas comme 2. Si j'enlève les guillemets simples, donc $lecode, j'ai une erreur de syntaxe et donc ça plante. Je suis pas très bon en syntaxe, mais en bidouillant d'habitude j'y arrive, mais là, pas du tout, donc j'ai vraiment besoin de vous.

Merci
A voir également:

6 réponses

Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
27 juin 2009 à 16:51
Salut,

Si code_cadeau est un nombre dans ta base il ne faut pas de guillemets, c'est certain.
Comment tu affectes $lecode ?
0
effectivement, $lecode est un nombre, dans ma base Mysql, il est au format : INT(11) donc Integer.

$lecode est définit comme suit (c'est un peu compliqué)
$lecode = $_POST['CODE'];

où $_POST['CODE'] provient d'un champ masqué d'un formulaire, qui prend une valeur nombre.

Donc pour moi, $lecode a bien une valeur nombre, c'est un peu pour ça que je bloque...


Merci de t'occuper de mon cas, en tout cas
0
RobertLaBiere
27 juin 2009 à 17:23
Essaye:

mysql_select_db($database_CC, $CC); 
$requete = "UPDATE jos_cadeau SET ENVOYE = 1 WHERE CODE_CADEAU =".$lecode;
$action = mysql_query($requete, $CC) or die(mysql_error()); 
0
J'obtiens une erreur :

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 '=6' at line 1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dr Zoidberg Messages postés 529 Date d'inscription jeudi 28 juin 2007 Statut Membre Dernière intervention 12 juin 2015 100
27 juin 2009 à 17:38
Si tu 'montes' ta requête dans une variable avant de la lancer avec mysql_query, et que tu fais un echo, tu obtiens quoi comme requête ?
0
montée ? tu veux dire $requete ="UPDATE etc..."; ? puis $action = mysql_query($requete, $CC) ?
Si tel est le cas : si je mets WHERE CODE_CADEAU ='$lecode', j'obtiens : WHERE CODE_CADEAU = '6' (6 étant la bonne valeur), et si je mets WHERE CODE_CADEAU =$lecode, j'ai bien WHERE CODE_CADEAU =6 !!! Donc pour moi tout est OK.

J'ai toujours pas trouvé, le problème c'est qu'en plus, je peux pas tellement faire autrement !

Merci encore...
0