PHP MySQL et UPDATE d'une table
Résolu
jadu29
Messages postés
49
Statut
Membre
-
jadu29 Messages postés 49 Statut Membre -
jadu29 Messages postés 49 Statut Membre -
Bonjour,
J'ai un souci qui me ronge, alors que je ne suis pas du gruyère !
j'ai besoin de laisser les utilisateurs modifier certains champs d'une table.
Je sais faire cela et j'obtient, par exemple une valeur "$modif"
et cela s'applique pour un utilisateur qui a un pseudo repéré comme
Quand je veux mettre à jour la base je le demande à MySQL qui est là pour cela. Mais il y a un bug !
je place ici le code de "travail"
et j'ai le retour de bâton comme ceci:
Erreur SQL !update centre_interet set mediation ='OUI', reiki ='OUI', meditation ='OUI', litho ='OUI', couleurs ='OUI', sons ='OUI', hig ='OUI', tout ='OUI', where pseudo='toto'
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 pseudo='toto'' at line 1
Je trouve cela inadmissible, mais je pense quand même que c'est moi qui fait une erreur quelque part, erreur que je ne trouve pas !
Pourtant la ligne renvoyée en "erreur" par SQL ne présente pas de défaut, si ???
Aussi j'ai besoin de votre aide !
Merci à tous !
--
Prenez bien soin de vous !
Vous êtes à la meilleure place pour le faire !
J'ai un souci qui me ronge, alors que je ne suis pas du gruyère !
j'ai besoin de laisser les utilisateurs modifier certains champs d'une table.
Je sais faire cela et j'obtient, par exemple une valeur "$modif"
$modif=mediation ='OUI', reiki ='OUI', meditation ='OUI', litho ='OUI', couleurs ='OUI', sons ='OUI', hig ='OUI', tout ='OUI';
et cela s'applique pour un utilisateur qui a un pseudo repéré comme
$pseudo='toto'
Quand je veux mettre à jour la base je le demande à MySQL qui est là pour cela. Mais il y a un bug !
je place ici le code de "travail"
$sql = "update centre_interet SET ".$modif2." WHERE pseudo='".$pseudo."'";
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
et j'ai le retour de bâton comme ceci:
Erreur SQL !update centre_interet set mediation ='OUI', reiki ='OUI', meditation ='OUI', litho ='OUI', couleurs ='OUI', sons ='OUI', hig ='OUI', tout ='OUI', where pseudo='toto'
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 pseudo='toto'' at line 1
Je trouve cela inadmissible, mais je pense quand même que c'est moi qui fait une erreur quelque part, erreur que je ne trouve pas !
Pourtant la ligne renvoyée en "erreur" par SQL ne présente pas de défaut, si ???
Aussi j'ai besoin de votre aide !
Merci à tous !
--
Prenez bien soin de vous !
Vous êtes à la meilleure place pour le faire !
6 réponses
-
Bonjour,
Il faut préciser le nom du champ à modifier dans la table sinon MySQL se mélange les pinceaux :$sql = "UPDATE centre_interet SET nom_champ=".$modif2." WHERE pseudo='".$pseudo."'"; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Concernant le message d'erreur, elle concerne une requête différente :UPDATE centre_interet SET mediation='OUI', reiki='OUI', meditation='OUI', litho='OUI', couleurs ='OUI', sons='OUI', hig='OUI', tout='OUI', WHERE pseudo='toto';
Il y a une virgule de trop juste avant la condition WHERE. -
Bonjour,
Je trouve cela inadmissible, mais je pense quand même que c'est moi qui fait une erreur quelque part, erreur que je ne trouve pas !
ah ah ah, mySql ne fonctionne pas à la tête du client ... donc oui il y a une erreur
Erreur SQL !update centre_interet set mediation ='OUI', reiki ='OUI', meditation ='OUI', litho ='OUI', couleurs ='OUI', sons ='OUI', hig ='OUI', tout ='OUI', where pseudo='toto'
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 pseudo='toto'' at line 1
enleve la virgule avant WHERE, çà devrait fonctionner -
Je vous remercie d'avoir attiré mon attention sur cette virgule !
À force d'être planté on fini par ne plus rien voir, pas vrai ?
Comme le "$modif2" était obtenu avec des $modif2=$modif2.' ####" ';
il m'a fallu reprendre ma chaine ! Et maintenant ça marche !
MERCI 1000 fois ;
Prenez bien soin de vous !
Vous êtes à la meilleure place pour le faire ! -
Oh dommage
Bon, il va pas dans le die, alors ?
Sinon, parfois des erreurs ne remontent pas au php. Fais un echo de ton $sql et colle-le en base (onglet SQL) Parfois, il est plus causant comme ça.
Je suppose que tu as vérifié qu'il y avait bien un gugusse qui avait le pseudo toto ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Oui 'toto' est mon nom de testeur !!! ;)
sinon, oui, quand j'édite la formule de MySql_query et que je la place dans SQL de phpmyadmin, ça colle bien !
En local !
mais sur mon site : un gros quedalle !!!
je croyais que le coup de la virgule était la cause unique !
mais il doit y avoir un ; ou un } pas fermé ou en trop ! Je balaye le tout, encore !
Si j'y arrive, je viendrais le dire, bien sûr ! -
Bon, ben oui, c'était bien cela ! Un peu ...
Mais j'ai dû refaire tout mes chaînages de 'if elsif else' !
Car selon les réponses au formulaire il y avait des fois des virgules de trop !
Bref, j'avais traité cela un peu à l'arach' et je me rends compte, une fois de plus, que d'avoir de la méthode 'papier' pour commencer empêche ce genre de #&$¤eries ! (°)
Donc cette fois c'est clos ! ( et non cloturé ! je n'aime pas les barbelés et j'aime le bon français ! )
() lire "âneries", bien sûr !