PHP MySQL et UPDATE d'une table [Résolu/Fermé]

Messages postés
35
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
4 mars 2019
- - Dernière réponse : jadu29
Messages postés
35
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
4 mars 2019
- 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 !
Afficher la suite 

6 réponses

0
Merci
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.
Messages postés
699
Date d'inscription
mercredi 8 avril 2009
Statut
Membre
Dernière intervention
4 décembre 2016
78
0
Merci
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
Messages postés
35
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
4 mars 2019
0
Merci
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 !
AssassinTourist
Messages postés
6126
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
27 octobre 2019
750 -
Sujet résolu ? =)
jadu29
Messages postés
35
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
4 mars 2019
-
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 !!!
Messages postés
6126
Date d'inscription
lundi 16 janvier 2012
Statut
Contributeur
Dernière intervention
27 octobre 2019
750
0
Merci
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 ?
Messages postés
35
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
4 mars 2019
0
Merci
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 !
Messages postés
35
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
4 mars 2019
0
Merci
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 !