Erreur syntaxe condition WHERE dans requete M

RomRoz -  
 RomRoz -
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

6 réponses

Dr Zoidberg Messages postés 547 Statut Membre 100
 
Salut,

Si code_cadeau est un nombre dans ta base il ne faut pas de guillemets, c'est certain.
Comment tu affectes $lecode ?
0
RomRoz
 
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
 
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
RomRoz
 
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 547 Statut Membre 100
 
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
RomRoz
 
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