Aide - Recherche - Membres - Calendrier
Version complète : Mise À Jour Sql
La Communauté TitaXium > Service Communication > Espace Developpement
Nokilling
Salut tous le monde smile.gif
Voila, sa va faire bientôt une heure que j'ai ce problème, et il commence grave à me souler :s

Donc voici mon problème, c'est la mise à jour d'une table, avec un simple formulaire, cependant, sa veux pas marcher pour une raison que je ne vois pas :s

Donc voici mon code :
Code
$text = $_POST['contenu'];
$id = $_POST['id'];
echo $text;
mysql_query("UPDATE edito SET text = '$text' WHERE id=$id ");
echo'Edito mis à jour.';


Et là ce que je comprend pas, c'est que quand j'affiche mon $_POST['id'] ou encore mon $_POST['contenu'], les informations s'affiche bien, mais lorsque je regarde dans ma base de donnée, il m'insère dedans un espace vide et rien d'autre :s

Et ce que je comprend pas, si j'initialise à la main la variable $text, il m'insère la chaine de caractères, mais la variable qui passe en POST, il veut bien me l'afficher, mais pas me l'insérer :s
Genre par exemple je met $text = "Insertion"; et ba il m'insèrera la chaine de caractères dans la base de donnée, alors qu'avant il m'affiche bien le contenu de $_POST['contenu']

Donc là je ne vois vraiment pas d'où peut venir mon problème, si quelqu'un pouvais m'aider surtout qu'il n'y aucun message d'erreur :s smile.gif

Merci d'avance smile.gif
Overcrash
Citation (Nokilling @ mardi 01 mai 2007 à 17h36) *
Code
$text = $_POST['contenu'];
$id = $_POST['id'];
echo $text;
mysql_query("UPDATE edito SET text = '$text' WHERE id=$id ");
echo'Edito mis à jour.';


mysql_query("UPDATE edito SET text = '" . $text . "' WHERE id='" . $_POST['id'] . "'");

Essaye avec ça, j'ai pas testé.
ED
Je dirais meme plus

Code
$rq = "UPDATE edito SET text = '%s' WHERE id=%d";
$rq = sprintf($rq,mysql_real_escape_string($text),$id);
mysql_query($rq);
Overcrash
A la limite on aurait pu compiler toute une série de fonctions pour sécuriser. ^^
Nokilling
Désoler, mais je doit vraiment avoir la poisse, car il ne veux vraiment pas me mettre à jours ce champs :s

Il m'insère toujours du vide :s

J'ai aussi essayé d'enregistrer dans un fichier, pas moyen, à chaque fois il m'insère du vide, alors qu'il m'affiche bien le résultat lorsque je fais un echo :s

Par exemple, j'ai mis dans mon textarea de mon formulaire : Test Update, et ba au finale il m'affiche :
Code
Test UpdateEdito mis à jour.
Test Update


Et voici le code utilisé :
Code
$text = $_POST['contenu'];
echo $text;
$rq = "UPDATE edito SET text = '%s' WHERE id=%d";
$rq = sprintf($rq,mysql_real_escape_string($text),$id);
mysql_query($rq);
echo'Edito mis à jour.<br />';
echo"<big>$text</big>";


Mais au finale, il m'insère toujours un espace vide :s

Là je comprend plus rien, sur mon script, plus aucun update ne marche en passant des variables :s
Même en utilisant la technique à ED ou Overcrash, aucune variable ne passe :s

Par exemple, voici un autre code pour l'update :
Code
        mysql_query("UPDATE projets SET titre = '".$titre."',
        avancement = '".$avancement."',
        site = '".$site."',
        site_status='".$status."',
        cat = '".$type."',
        image = '".$image."',
        status = 1 WHERE id=$id") or die(mysql_error());


Et là, même chose, pas moyen de mettre à jour, ça met toujours un espace vide, même si j'enregistre les variables dans un fichiers sa passe pas, sa me fait un document vide :s

EDIT : Voila, je vient d'essayer à chaque fois, lorsque je fais un echo sa affiche bien le contenu de la variable, genre l'id ou le titre, mais pas moyen de l'insérer dans un document avec un fwrite, ou encore de l'insérer dans une base de donnée :s
ED
Code
echo $rq;
sur mon code. si la requête est bien formé je regarderais le typage de ta structure SQL.
Nokilling
Ok, mais ce que je comprend pas, c'est qu'il y a trois, quatre jours, sa marchais super bien :s

Et d'un coup, plus rien ne marche :s

Ce qui est encore plus bizarre, c'est que sous IE sa marche à moitié, il m'insère des données, mais pas au bon endroit :s

Alors que sous Firefox il y a rien qui veux s'insérer :s


EDIT : Alors là, je comprend vraiment plus rien :s
J'ai décidé de ré-installer easyphp, et de reprendre ma base de donnée que j'avais sur 1and1 et de l'importée dedans, et maintenant toutes les fonctions marche normalement que sa soit sous IE ou sous Firefox :s

Voila, vu que sous 1and1 j'étais sous mysql 5, est-ce qu'il y a quelques chose à modifier pour la mise à jour d'une table ?
Car sinon, je vois vraiment pas d'où peut venir le problème :s
crazycorp
Bonjour, si je comprends bien, cette requette :

Code
$text = $_POST['contenu'];
$id = $_POST['id'];
echo $text;
mysql_query("UPDATE edito SET text = '$text' WHERE id=$id ");
echo'Edito mis à jour.';

ne marche pas ?

Je te conseil sa :
Code
$text = htmlentities($_POST['contenu'], ENT_QUOTES);
$id = intval($_POST['id']);
echo $text;
mysql_query('UPDATE edito SET text="'.$text.'" WHERE id="'.$id.'"');

echo'Edito mis à jour.';


Sa marche la ?
Nokilling
Bonjour tous le monde smile.gif
Voila, j'ai à nouveau un problème de mise à jours que je ne comprend pas.

Donc voici mon code :
Code
$sql = "UPDATE players SET id_case = $case, ap = ap-$pa WHERE id=$uid";
        mysql_query($sql) or die(mysql_error());


Et donc, je voudrais faire une soustraction directe du champ ap sans avoir besoin de faire plusieurs requêtes.
Et voici le message d'erreur :
Code
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 ' ap = ap-1 WHERE id=2' at line 1


J'ai aussi essayé en faisant un :
Code
$sql = "UPDATE players SET id_case = $case, ap = ap-'".$pa."' WHERE id=$uid";
mysql_query($sql) or die(mysql_error());

Et j'ai toujours le même message d'erreur smile.gif

Ce que je ne comprend pas, c'est que sous phpmyadmin, ma requête marche :s

PS : J'utilise la version 5.0.37 de Mysql.

EDIT : En faites je vient de voire que j'avais un problème avec mon $case smile.gif
Il était à NULL à cause d'une petite erreur ^^
ED
Quand on a une erreur SQL il faut toujours l'afficher pour vérifier qu'elle est bien générée.
Nokilling
Citation (ED @ vendredi 01 juin 2007 à 19h44) *
Quand on a une erreur SQL il faut toujours l'afficher pour vérifier qu'elle est bien générée.



Oui, c'est exactement le même conseil que l'on m'a donné, avant je faisait juste un OR DIE donc ça m'aidais pas tous le temps smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2010 Invision Power Services, Inc.