Page 1 sur 1
erreur 1064
Posté : 19 sept. 2006, 13:30
par lacfab
Salut voilà j'ai une fonction qui doit ajouter 1 à une valeur si celle-ci existe déjà ... seulement il me fait une erreur ... je ne vois pas du tout d'où celà vient !
Code : Tout sélectionner
$testaff[quantite_sess]++;
echo $testaff[quantite_sess];
mysql_query("UPDATE shop_sessions WHERE id_sess='$id_de_session' AND produit_sess=$article SET quantite_sess='$testaff[quantite_sess]'") or die ('<br><br>ERREUR update panier A<br>'. mysql_error());
Résultat :
ERREUR update panier A
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 'WHERE id_sess='0d5a371160883e16cd1a865f2dafe53e' AND produit_se
Merci d'avance

Posté : 19 sept. 2006, 13:30
par lacfab
Voici ma table :
CREATE TABLE `shop_sessions` (
`id_sess` char(32) NOT NULL default '',
`expiration_sess` int(11) NOT NULL default '0',
`produit_sess` char(25) NOT NULL default '',
`quantite_sess` int(2) NOT NULL default '0'
) TYPE=MyISAM;
INSERT INTO `shop_sessions` VALUES ('0d5a371160883e16cd1a865f2dafe53e', 1158681214, '3', 1);
Posté : 19 sept. 2006, 13:34
par Rei Itchido
Tu n'as pas précisé quel champs de la table tu veux mettre à jour.
La syntaxe correcte est : UPDATE table SET champs='nouvelle valeur' WHERE conditions
De plus tu devrais echapper tes variables

Posté : 19 sept. 2006, 13:47
par lacfab
si je l'ai mis
Echapper mes variables ?? comment ça ?
Posté : 19 sept. 2006, 13:50
par Rei Itchido
Le SET= doit être avant le WHERE
Echapper c'est à dire sortir les variables de la chaîne.
Ici :
WHERE id_sess='".$id_de_session."'
Posté : 19 sept. 2006, 13:55
par lacfab
Mille merci je sais pas pourquoi j'ai mis le where avant le set mais bon maintenant ça remarche !
Je savais pas qu'il était important de ressortir les variables ... je le fais quelque fois et parfois non ... ça joue sur quoi ?
Posté : 19 sept. 2006, 15:01
par zeus
1°/ echapper une variable signifie proteger les caractère dangereux, pas sortir la variable d'une chaine dont le nom est extraire
2°/ extraire une chaine permet de ne jamais être tenté d'écrire une varaible dans une chaine entouré de '
$toto = "bonjour";
echo "$toto"; //affiche bonjour
echo '$toto'; //affiche $toto
Et tu peut me croire, même si tu as l'habitude de mettre des ", il va forcément y avoir un jour où tu va avoir besoin d'utiliser '

Posté : 19 sept. 2006, 16:23
par Rei Itchido
1°/ echapper une variable signifie proteger les caractère dangereux, pas sortir la variable d'une chaine dont le nom est extraire
Eu vi concatener pas echapper
