PHP MySQL et UPDATE d'une table

Résolu/Fermé
jadu29 Messages postés 44 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 17 juillet 2023 - 18 mars 2012 à 11:13
jadu29 Messages postés 44 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 17 juillet 2023 - 20 mars 2012 à 16:49
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"

$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 !
A voir également:

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.
0
maka54 Messages postés 699 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
18 mars 2012 à 11:26
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
0
jadu29 Messages postés 44 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 17 juillet 2023 9
Modifié par jadu29 le 19/03/2012 à 11:13
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 !
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
19 mars 2012 à 12:06
Sujet résolu ? =)
0
jadu29 Messages postés 44 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 17 juillet 2023 9
Modifié par jadu29 le 19/03/2012 à 18:58
En fait non ! ce n'est pas terminé !
Car ma requête est bonne maintenant, quand le la place dans PhpMyAdmin tout se passe bien en local, mais sur mon site, tout se passe apparemment bien mais les bases ne sont pas modifiées !!!
0
AssassinTourist Messages postés 5709 Date d'inscription lundi 16 janvier 2012 Statut Contributeur Dernière intervention 29 février 2024 1 310
Modifié par AssassinTourist le 19/03/2012 à 19:58
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 ?
0

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

Posez votre question
jadu29 Messages postés 44 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 17 juillet 2023 9
19 mars 2012 à 20:21
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 !
0
jadu29 Messages postés 44 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 17 juillet 2023 9
20 mars 2012 à 16:49
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 !
0