Modifier la base de donnée

Résolu
martine et chantal Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   -  
martine et chantal Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je n'arrive pas à trouver mon erreur et je pense être près du but.
Je suis en train de créer un formulaire pour modifier les éléments de ma base de donnée.

j'ai une page une page html avec mon formulaire et un bouton modifier.
j'ai une page script javascript qui récupère les champs input et textarea et l'id nécessaire.
cette page javascript envoie les données en ajax sur ma pagemodif.php.
et pour finir mon script me renvoie un alert(msg) de ma page php que voici :

UPDATE travaux SET entreprise = "bla",conception = "bli",description = "blo",WHERE tid=10

Il me semble que tout est bon ??? et pourtant la modification n'est pas effectuée.
j'ai vérifier l'orthographe de chaque mot et la syntaxe.

je sèche !

4 réponses

le père
 
Bonjour

Il ne faut pas de virgule mais un espace avant WHERE.
Ou si tu préfères il faut une virgule entre les différents champs que tu modifies, pas après.
1
martine et chantal Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   4
 
AH LA VACHE tu as raison !
mais alors attends je ne comprends pas
c'est la partie php qui m'échappe :

quand j'écris :
$sql = ("UPDATE ...);
$req = mysql_query($sql);
ce n'est pas qu'une déclaration ?

finalement la 2ème version mysql_query("UPDATE ...) (qui me semble être la version classique) me paraît plus claire.
0
martine et chantal Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   4
 
YES !!! J'ai trouvé mon erreur

Mon alert(msg) n'est qu'un message de ma page modif.php
rien ne prouvait que la requête était bien envoyé.

Je déclarait une requête $sql= (le contenu de du alert(msg))
mais je pensais lancer ma requête en écrivant :
$req = mysql_query($sql);

or je ne faisais que déclarer une nouvelle variable.
erreur de débutant ! + grosse fatigue

il me suffisait d'écrire une vraie requête :

mysql_query("UPDATE travaux SET entreprise='$entreprise', conception='$conception', description='$description' WHERE tid=$tid");

MERCI MOI-MÊME
0
martine et chantal Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   4
 
quelqu'un doit m'écrire pour mettre ce sujet résolu ?
0
le père
 
Les deux façons d'écrire sont équivalentes.
Dans le premier cas, tu mets dans la variable $sql une chaine de caractères ( ta requête UPDATE ...) et ensuite tu appelles la fonction mysql_query en lui donnant cette variable comme argument.
Dans le deuxième cas, tu appelles la fonction mysql_query en lui donnant directement la requête.

Au final, dans les deux cas, tu as appelé la même fonction en lui donnant la même requête.

Personnellement, je ne trouve pas une version plus ni moins claire que l'autre, et j'utilise les deux selon l'humeur du moment.
0
martine et chantal Messages postés 485 Date d'inscription   Statut Membre Dernière intervention   4
 
ok c'est maintenant très clair dans ma tête.

Pour l'histoire de la virgule avant WHERE c'est parce que j'ai recopié un de mes exercices en changeant et supprimant les valeurs, or j'ai supprimé la dernière ligne qui ne comprenait pas de virgule.
Bref ! encore une fois je fais une erreur de syntaxe et ça ça m'énerve ! car je peux passer des heures sans les voir.

En tout cas MERCI !
0