jlb59 Posté 30 Janvier 2008 Posté 30 Janvier 2008 Bonjour à tous, Avec un tuto, j'ai fait un update dans une table. Quand j'exécute directement, ça marche, mais quand c'est fait à partir d'un formulaire, y a d'erreur mais il n'y a aucun update d'effectuer. J'ai fait ce formulaire pour me simplifier la vie, parce que faire directement par le fichier d'update, je devais modifier la source, transférer et exécuter. Ce formulaire, très simple, n'utilise que 2 variables (id et mots-cles) (c'est pour mon moteur de recherche), qui sont récupérées par le fichier d'update, comme le montre ces codes : Formulaire : CODE <form method="post" action="frm_update-recherche.php" name="update"> <strong>Mise à jour de mots-clés - Recherche.sql :</strong><br><br><br><br> N° id : <input type="text" name="id" size="3" maxlength="3"><br><br> Mots clés : <textarea name="motscles" cols="50" rows="5"></textarea><br><br><br><br> <input type="submit" value="Envoyer"> <input type="reset" value="Recommencer"> </form> Fichier de l'update : <?php if ((isset($_POST['motscles']) && !empty($_POST['motscles'])) && (isset($_POST['id']) && !empty($_POST['id']))) { $id = $_POST['id']; $mots_cles = $_POST['motscles']; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title></title> </head> <body> <!-- /////////////////////////////////////////////////// --> <!-- //////////// Mise à jour des mots-clés //////////// --> <!-- /////////////////////////////////////////////////// --> <?php mysql_connect("sql.free.fr", "XXXXX", "XXXXX"); mysql_select_db("XXXXX"); $requete = mysql_query("SELECT * FROM recherche WHERE id='$id'"); $reponse = mysql_fetch_array($requete); $contenu_actuel = $reponse['mots_cles']; $nouveau_contenu = $contenu_actuel.$mots_cles; mysql_query("UPDATE recherche SET mots_cles = '$nouveau_contenu' WHERE id='$id'"); mysql_close(); // Déconnexion de MySQL ?> </body> </html> <?php } else { echo 'Mots-clés ajoutés<br><br>'; echo '[ <a href="java script:history.go(-1)">Retour page précédente</a> ]'; } ?> Personnellement, je ne vois rien d'anormal et je me demande pourquoi la mise à jour ne se fait pas !!!!! Est-ce que vous pourriez m'aider à résoudre ce problème ? Il est possible que vous voyiez qq chose d'anormal que je ne vois pas ! Merci de votre aide.
mohican83 Posté 30 Janvier 2008 Posté 30 Janvier 2008 Salut, Déjà, pourquoi ne fais tu pas la requete d'update en haut dans if ((isset($_POST['motscles']) && !empty($_POST['motscles'])) && (isset($_POST['id']) && !empty($_POST['id']))){$id = $_POST['id'];$mots_cles = $_POST['motscles'];?> ensuite, pour voir la requete fais en echo de ta requete. en plus, change : mysql_query("UPDATE recherche SET mots_cles = '$nouveau_contenu' WHERE id='$id'"); en mysql_query("UPDATE recherche SET mots_cles = '.$nouveau_contenu.' WHERE id='.$id.'"); de plus que se passe t'il si tu as des apostrophes dans $nouveau_contenu ??? @+
jlb59 Posté 30 Janvier 2008 Auteur Posté 30 Janvier 2008 Salut, Déjà, pourquoi ne fais tu pas la requete d'update en haut dans if ((isset($_POST['motscles']) && !empty($_POST['motscles'])) && (isset($_POST['id']) && !empty($_POST['id']))){$id = $_POST['id'];$mots_cles = $_POST['motscles'];?> Je l'ai déjà expliqué et ça marche (cf. mon post). ensuite, pour voir la requete fais en echo de ta requete. en plus, change : mysql_query("UPDATE recherche SET mots_cles = '$nouveau_contenu' WHERE id='$id'"); en mysql_query("UPDATE recherche SET mots_cles = '.$nouveau_contenu.' WHERE id='.$id.'"); J'ai fais le changement, mais ça marche toujours pas ! de plus que se passe t'il si tu as des apostrophes dans $nouveau_contenu ???Alors là !... Tu sais, MySQL c'est pas trop mon fort.Je pense que si dans le tuto il y avait ça, y a certainement une raison, non ?
mohican83 Posté 30 Janvier 2008 Posté 30 Janvier 2008 (modifié) Fais un echo de ta requete. Pour les apostrophes, à mon avis ton script plante... @+ Modifié 30 Janvier 2008 par mohican83
jlb59 Posté 30 Janvier 2008 Auteur Posté 30 Janvier 2008 (modifié) J'ai bien le code pour la liste du moteur, c'est la même chose pour la requête de mise à jour ? PS : J'ai oublié de te dire que pour me facilité la tâche, j'ai installé ce mdr en local, et j'ai supprimé plusieurs éléments (enregistrements). Il ne reste qu'un seul id avec ses mots-clés. Modifié 30 Janvier 2008 par captain_torche
mohican83 Posté 30 Janvier 2008 Posté 30 Janvier 2008 Je pense qu'on ne se comprend pas. remplace mysql_query("UPDATE recherche SET mots_cles = '$nouveau_contenu' WHERE id='$id'"); par : $s_sql = "UPDATE recherche SET mots_cles = '".$nouveau_contenu."' WHERE id='".$id."'";mysql_query($s_sql);echo $s_sql; et regarde ce que donne le echo ...
jlb59 Posté 30 Janvier 2008 Auteur Posté 30 Janvier 2008 Effectivement, c'est mi qui avait mal compris ! Je vais essaué comme ça, on verra bien !...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant