Problème pour mettre à jour mes données
Résolu
Zeerroo
Messages postés
200
Date d'inscription
Statut
Membre
Dernière intervention
-
Zeerroo Messages postés 200 Date d'inscription Statut Membre Dernière intervention -
Zeerroo Messages postés 200 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà j'ai suivis les indications données dans un bouquin (Sites Web Dynamique PHP-MySQL-Javascript-AJAX) pour mettre à jour les informations de ma base de données via le navigateur en utilisant un formulaire PHP puis le script qui doit mettre à jour mais celui ne fonctionne pas.
Voici les codes de mes deux fichiers:
edite.php
metajour.php
J'ai fait toute les autres étapes, c'est à dire supprimer, ajouter un nouveau livre (dans le cas de l'exercice) et cela fonctionne, je réutilise la même structure que metajour.php en changeant juste la requête sql (insert into value, delete..)et cela fonctionne .
J'espère que mes explications sont claires, sinon n'hésitez pas à me demande des précisions.
Je vous remercie d'avance pour vos réponses.
Voilà j'ai suivis les indications données dans un bouquin (Sites Web Dynamique PHP-MySQL-Javascript-AJAX) pour mettre à jour les informations de ma base de données via le navigateur en utilisant un formulaire PHP puis le script qui doit mettre à jour mais celui ne fonctionne pas.
Voici les codes de mes deux fichiers:
edite.php
<?php $liaison = mysql_connect ("localhost", "root", ""); mysql_select_db("biblio"); $sql = "select * from livre" . " where id=". mysql_real_escape_string($_REQUEST["id"]); $resultat = mysql_query($sql); $livre = mysql_fetch_assoc($resultat); ?> <html> <head> <title>Biblio</title> </head> <body> <h1>Modification</h1> <form action="metajour.php" method="post"> <input type="hidden" name="id" value="<?php echo $livre["id"]; ?>" /> <fieldset> <legend><?php echo $livre["titre"]; ?></legend> <label>titre</label> <input type="text" name="titre" value="<?php echo $livre["titre"]; ?>" /><br /> <label>auteur</label> <input type="text" name="auteur" value="<?php echo $livre["auteur"]; ?>" /><br /> <label>année</label> <input type="text" name="annee" value="<?php echo $livre["annee"]; ?>" /><br /> <label>genre</label> <select name="genre"> <option value="Roman" <?php if ($livre["genre"] == "Roman") echo "selected"?>>Roman</option> <option value="Poésie" <?php if ($livre["genre"] == "Poésie") echo "selected"?>>Poésie</option> </select><br /> <label>état<label> <input type="radio" name="etat" value="1" <?php if ($livre["etat"] == 1) echo "checked"?> /> neuf <input type="radio" name="etat" value="0" <?php if ($livre["etat"] == 0) echo "checked"?> /> occasion <br /> <input type="submit" value="Enregistrer" /> </fieldset> <a href="liste.php">Retour à la liste</a> </body> </html> <?php mysql_close($liaison); ?>
metajour.php
<?php $liaison = mysql_connect("localhost", "root", ""); mysql_select_db("biblio"); $sql = "update livre set" ." titre=".mysql_real_escape_string($_REQUEST['titre'])."," ." auteur=".mysql_real_escape_string($_REQUEST['auteur'])."," ." annee=".mysql_real_escape_string($_REQUEST['annee'])."," ." genre=".mysql_real_escape_string($_REQUEST['genre'])."," ." etat=".mysql_real_escape_string($_REQUEST['etat'])."," ." where id=".mysql_real_escape_string($_REQUEST['id']); mysql_query($sql); mysql_close($liaison); ?> Mise à jour effectuée <a href="liste.php">retour</a>.
J'ai fait toute les autres étapes, c'est à dire supprimer, ajouter un nouveau livre (dans le cas de l'exercice) et cela fonctionne, je réutilise la même structure que metajour.php en changeant juste la requête sql (insert into value, delete..)et cela fonctionne .
J'espère que mes explications sont claires, sinon n'hésitez pas à me demande des précisions.
Je vous remercie d'avance pour vos réponses.
A voir également:
- Problème pour mettre à jour mes données
- Fuite données maif - Guide
- Mettre a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
3 réponses
." etat=".mysql_real_escape_string($_REQUEST['etat'])."," ." where id=".mysql_real_escape_string($_REQUEST['id']);
Il y a une virgule en trop apres etat = ....
et il faudrait ajouter des quotes dans ta requete pour les données de type string
." etat='".mysql_real_escape_string($_REQUEST['etat'])."'"
je ne comprend pas trop ce qui ne fonctionne pas mais essayes comme ça:
edite.php <?php $liaison = mysql_connect ("localhost", "root", ""); mysql_select_db("biblio"); //les instructions Mysql en majuscules (SELECT etc....) c'est plus facile à lire $sql = "SELECT * fFROM livre" . " WEHRE id=". mysql_real_escape_string($_GET["id"]); //je suppose que id est passé vial l'url $resultat = mysql_query($sql); $livre = mysql_fetch_assoc($resultat); ?> <html> <head> <title>Biblio</title> </head> <body> <h1>Modification</h1> <form action="metajour.php" method="post"> <input type="hidden" name="id" value="<?php echo $livre["id"]; ?>" /> <fieldset> <legend><?php echo $livre["titre"]; ?></legend> <label>titre</label> <input type="text" name="titre" value="<?php echo $livre["titre"]; ?>" /><br /> <label>auteur</label> <input type="text" name="auteur" value="<?php echo $livre["auteur"]; ?>" /><br /> <label>année</label> <input type="text" name="annee" value="<?php echo $livre["annee"]; ?>" /><br /> <label>genre</label> <select name="genre"> <option value="Roman" <?php if ($livre["genre"] == "Roman") echo "selected"?>>Roman</option> <option value="Poésie" <?php if ($livre["genre"] == "Poésie") echo "selected"?>>Poésie</option> </select><br /> <label>état<label> <input type="radio" name="etat" value="1" <?php if ($livre["etat"] == 1) echo "checked"?> /> neuf <input type="radio" name="etat" value="0" <?php if ($livre["etat"] == 0) echo "checked"?> /> occasion <br /> <!-- il faut mettre une name input submit --> <input name="modifier" type="submit" value="Enregistrer les modifications" /> </fieldset> <a href="liste.php">Retour à la liste</a> </body> </html> <?php mysql_close($liaison); ?> metajour.php <?php //on verifie que le formulaire de modif a été posté //utilises $_POST au lieu de $_REQUEST if(isset($_POST['modifier'])){ $liaison = mysql_connect("localhost", "root", ""); mysql_select_db("biblio"); $sql = "UPDATE livre SET" ." titre=".mysql_real_escape_string($_POST['titre'])."," ." auteur=".mysql_real_escape_string($_POST['auteur'])."," ." annee=".mysql_real_escape_string($_POST['annee'])."," ." genre=".mysql_real_escape_string($_POST['genre'])."," ." etat=".mysql_real_escape_string($_POST['etat'])."," ." where id=".mysql_real_escape_string($_POST['id']); $modification=mysql_query($sql); mysql_close($liaison); //pour afficher le mesage il faut verifier que la modif s'est bien passée if($modification){ echo 'Mise à jour effectuée pour le livre: '.$_POST['titre']; }else{ echo 'Pb avec la requette de mise à jour ! '; } } ?> <br /><br /><a href="liste.php">retour</a>.