Aller au contenu

Update impossible


Sujets conseillés

Posté

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.

Posté

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 ???

@+

Posté
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 ?

Posté (modifié)

Fais un echo de ta requete.

Pour les apostrophes, à mon avis ton script plante...

@+

Modifié par mohican83
Posté (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é par captain_torche
Posté

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 ...

Posté

Effectivement, c'est mi qui avait mal compris !

Je vais essaué comme ça, on verra bien !...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...