Problème de requête UPDATE [Résolu]

Signaler
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
29 décembre 2006
-
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
29 décembre 2006
-
Salut !

J'ai un petit souci de requête SQL et en particulier avec la requête UPDATE.

Je cherche à mettre un jour un enregistrement dans une table (news) dont voici la strucure :
id (type INT)
date (type DATE)
corps (type TEXT)

et voici le code php :
include('../config/conf.php'); //ça c'est pour la connexion à la BDD
                               
$corps = $_POST['corps'];
                               
$query = mysql_query("UPDATE news SET corps="$corps" WHERE id=".$_GET['id']."");

Alors, ça ne marche pas du tout et je crois savoir d'ou vient le problème : id=".$_GET['id']." ! Comme id est de type INT, à mon avis, il manque qqch (genre des cotes ou des guillemets) mais j'ai essayé pas mal de trucs et ça ne fonctionne toujours pas !

Si qqun pouvait m'aider ce serait vraiment cool !

Merci

P.S. : voici comment je fais le lien entre le formulaire ou je peux modifier la news en question et le script php ou la MAJ est faite (si ça peut aider) :
<form method ="post" action="updatenews2.php?id=<? print($_GET['id']); ?>&admin=<? print($_GET['admin']); ?>&id_session=<? print($_GET['id_session']); ?>">
--------
Alex

6 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
"UPDATE news SET corps="$corps" WHERE id=".$_GET['id'].""

tu as un guillemet en trop à la fin de ta requête. En fait 2:

("UPDATE news SET corps="$corps" WHERE id=".$_GET['id']);
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

$_GET['id'] est vide à mon avis.
Fais un echo de ta requête, tu verras bien où est le problème.
Tu ne devrais pas faire autant confiance aux données utilisateurs...ça se teste et se vérifie, ce genre de données.
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
29 décembre 2006

Merci pour ta réponse !

J'avais testé les valeurs de $corps et $_GET['id'] et aucun des 2 n'est vide.
---------------
Alex
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
29 décembre 2006

J'viens d'essayer ta solution et ça ne fonctionne toujours pas !
---------
Alex
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Fais voir le code tel quel maintenant...?
et ajour un or die (mysql_error()); après ton mysql_query ().
Messages postés
84
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
29 décembre 2006

Ca marche ! Merci beaucoup !

La syntaxe correcte c'est donc : ("UPDATE news SET corps="$corps" WHERE id=".$_GET['id']);

En fait, j'ai fait ce que tu m'as dit (die(mysql_error())) et ça m'a indiqué une erreur de syntaxe qui en fait venait de ce que contenait la variable corps (dedans, yavait des guillemets car le texte associé à la news contient une balise etc! Et ça passait pas donc j'ai simplement ajouté le caractère \ devant les guillemets dans le formulaire.).

En tout cas, merci d'avoir pris le temps de d'intéresser à mon pb !
------------
Alex