Modifier la base de donnée

Résolu/Fermé
martine et chantal Messages postés 485 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 4 juin 2013 - Modifié par martine et chantal le 25/02/2012 à 21:32
martine et chantal Messages postés 485 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 4 juin 2013 - 25 févr. 2012 à 23:24
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 !

A voir également:

4 réponses

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 dimanche 15 février 2009 Statut Membre Dernière intervention 4 juin 2013 4
Modifié par martine et chantal le 25/02/2012 à 23:00
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 dimanche 15 février 2009 Statut Membre Dernière intervention 4 juin 2013 4
25 févr. 2012 à 22:43
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 dimanche 15 février 2009 Statut Membre Dernière intervention 4 juin 2013 4
25 févr. 2012 à 22:45
quelqu'un doit m'écrire pour mettre ce sujet résolu ?
0
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 dimanche 15 février 2009 Statut Membre Dernière intervention 4 juin 2013 4
25 févr. 2012 à 23:24
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