Problème de requête UPDATE

Résolu
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006 - 29 déc. 2006 à 15:45
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006 - 29 déc. 2006 à 16:58
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

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 déc. 2006 à 16:33
"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']);
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 déc. 2006 à 16:15
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.
0
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006
29 déc. 2006 à 16:20
Merci pour ta réponse !

J'avais testé les valeurs de $corps et $_GET['id'] et aucun des 2 n'est vide.
---------------
Alex
0
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006
29 déc. 2006 à 16:39
J'viens d'essayer ta solution et ça ne fonctionne toujours pas !
---------
Alex
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 déc. 2006 à 16:46
Fais voir le code tel quel maintenant...?
et ajour un or die (mysql_error()); après ton mysql_query ().
0
cs_steppenwolf Messages postés 84 Date d'inscription jeudi 18 septembre 2003 Statut Membre Dernière intervention 29 décembre 2006
29 déc. 2006 à 16:58
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
0
Rejoignez-nous