[PHP] Update dans un formulaire

Fermé
Tom - 3 déc. 2009 à 19:21
 Tom - 4 déc. 2009 à 16:21
Bonjour,
J'essaye de pouvoir modifier les données de ma BDD depuis un formulaire, j'ai bien chercher sur CCM mais toutes les explications potentielle sont trop compliqué pour moi ...
J'ai sur ma page : image.php?var=552 :

<?php
if (isset($_POST['image'])   ) // Si les variables existent
{

        // D'abord, on se connecte à MySQL
		include("connexion.php"); 
 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $image = mysql_real_escape_string(htmlspecialchars($_POST['image']));
		
        // Ensuite on enregistre le message
        mysql_query("UPDATE Table SET image='$image'  WHERE id='".$_GET['var']."'     ");
 

}

// Tout d'abord le formulaire :
?>
<FORM method=post action="film_edit.php">

<TABLE BORDER=0>

<TR>
	<TD>Images</TD>
	<TD>
	<TEXTAREA rows="1" cols="40" name="image"></TEXTAREA>
	</TD>
</TR>
<TR>
	<TD COLSPAN=2>
	<br><br><INPUT type="submit" value="Envoyer">
	</TD>
</TR>
</TABLE>
</FORM>

Ce code ne marche pas actuellement, la problemme vient apparement du mysql_query

Merci de m'aider a modifier ma BDD grâce à ce formulaire

.
A voir également:

8 réponses

Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
3 déc. 2009 à 21:58
Bonjour

As tu essayé en enlevant les ' ' autour de $id dans ta requete ?
0
Bonjour

Le code de traitement de ton formulaire if (isset($_POST['image']) etc...
semble être dans ta page image.php?var=552 d'après ce que tu dis.
Mais il devrait être dans ta page "film_edit.php" car c'est ce script qui traite ton formulaire. C'est ce que veut dire le action="film_edit.php" dans la balise <form>
De plus, post devrait être entre " dans ta balise <form method="post" ...

Pour voir s'il y a des problèmes au niveau du mysql_query, ajoute à la fin entre la ) et le ; :
or die (mysql_error());
ça te dira s''il y a une erreur dans la requête
0
je viens d'essayer :

 mysql_query("UPDATE Table SET image='$image'  WHERE id=".$_GET['var']."   ");


mais ça ne fonctionne pas non plus.
une idée ?
0
N'essaye pas d'ajouter ou d'ôter des apostrophes pour faire plaisir à quelqu'un qui te te demande : tu dois en mettre s'il en faut, et ne pas en mettre s'il n'en faut pas. La règle est très simple : si le champ est un nombre, tu peux t'en passer, si c'est autre chose (un texte), tu en mets. D'ailleurs, même si c'est un nombre, tu peux en mettre en fait.

Le code que tu présentes est-il dans image.php?var=552 , dans film_edit.php ou en partie dans l'un et dans l'autre ?
De toutes façons, tu as un problème dans ton form action=film_edit.php : quand tu envoies le formulaire, tu appelles film_edit.php alors qu'il faudrait appeler film_edit.php?var=552, sinon $_GET['var'] n'est plus défini quand tu traites le formulaire
0

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

Posez votre question
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71
3 déc. 2009 à 22:56
N'essaye pas d'ajouter ou d'ôter des apostrophes pour faire plaisir à quelqu'un qui te te demande


Bon ben ok je dis plus rien -_-
0
Je te jure que je n'en ai pas après toi... Mais c'était une modif forcément inutile.
0
Pilow Messages postés 400 Date d'inscription vendredi 2 octobre 2009 Statut Membre Dernière intervention 23 décembre 2009 71 > le père
3 déc. 2009 à 23:00
Perso j'ai déjà eu des erreurs en comparant un int avec une variable entre ' donc je propose on sait jamais

Mais promis je dirai plus rien
0
je me suis trompé en collant le script ici , en fait j'ai sur ma page image.php?var=552 :

<?php
if (isset($_POST['image'])   ) // Si les variables existent
{
		include("connexion.php"); 
     $image = mysql_real_escape_string(htmlspecialchars($_POST['image']));
		
        // Ensuite on enregistre le message
        mysql_query("UPDATE Table SET image='$image'  WHERE id=".$_GET['var']." ") or die (mysql_error()); 
 

}

// Tout d'abord le formulaire :
?>
<FORM method="post" action="image.php">

<TABLE BORDER=0>

<TR>
	<TD>Images</TD>
	<TD>
	<TEXTAREA rows="1" cols="40" name="image"></TEXTAREA>
	</TD>
</TR>
<TR>
	<TD COLSPAN=2>
	<br><br><INPUT type="submit" value="Envoyer">
	</TD>
</TR>
</TABLE>
</FORM>

J'ai modifier ce que vous m'avez dit, mais, le probleme ne vient pas du formulaire mais de la ligne 61 soit la ligne du mysql_query ... ( si j'enleve les " j'ai une `T_STRING' error | et si je met les " j'ai une parse error )
Merci de m'aider

.
0
Non, il n'y a pas de parse error dans cette ligne :
mysql_query("UPDATE Table SET image='$image' WHERE id=".$_GET['var']." ") or die (mysql_error());
D'ailleurs, personne n'a parlé d'ôter les " mais les apostrophes qui entourent la valeur qu'il y a après id=

As-tu lu mon explication du message 4 ? Dans le traitement du formulaire, tu utilises la valeur $_GET['var']
Mais le formulaire n'envoie pas cette valeur : tu ne risques pas de la retrouver.
0
Merci 'le père' , en effet le problème venait du FORM.
Maintenant j'aimerais modifier 2 valeurs de ma table en même temps grâce au même formulaire . es-ce possible ?
et qu'es-ce que ça donnerait au niveau du mysql_query ?

Merci en tout cas pour vos réponse.
0