Problème Requête UPDATE vers MySql

Fermé
garinsha20 Messages postés 20 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 10 avril 2008 - 4 avril 2008 à 14:22
 Utilisateur anonyme - 4 avril 2008 à 16:49
Bonjour,
Je vous explique le contexte de mon problème!
J'ai un formulaire de contact que tout utilisateur remplit, et j'aimerai que celui-ci une fois inscrit puisse revenir sur son profil et modifier ses données!

Voici mon code
Je récupère les noms des champs dans le formulaire :
<form method="POST" action="valider.php" name="f">
<input type="hidden" name="id" value="<? echo $res['idmaitre']; ?>">
<input type="hidden" name="nom" value="<? echo $res['nommaitre']; ?>">
<input type="hidden" name="prenom" value="<? echo $res['prenommaitre']; ?>">
<input type="hidden" name="email" value="<? echo $res['mailmaitre']; ?>">
<input type="hidden" name="mdp" value="<? echo $res['mdpmaitre']; ?>">
<input type="hidden" name="nom1" value="<? echo $res['nomanimal']; ?>">
<input type="hidden" name="deces" value="<? echo $res['datedecesanimal']; ?>">
<input type="hidden" name="age" value="<? echo $res['ageanimal']; ?>">
<input type="hidden" name="commentaire" value="<? echo $res['commentaireanimal']; ?>">
<input type="hidden" name="animal" value="<? echo $res['catanimal']; ?>">
<input type="hidden" name="race" value="<? echo $res['raceanimal']; ?>">
</form>

Et voici ma requête dans ma page "valider.php" :
$update=mysql_query ("UPDATE Maitre
SET nommaitre='".$nom."',
prenommaitre='".$prenom."',
mailmaitre='".$email."',
mdpmaitre='".$mdp."',
etatmaitre='A'
WHERE idmaitre='".$idmaitre."' ");

mysql_query($update) or die ("plantage de l'insertion : ".$update);

Voilà l'état de la situation.
La page "valider.php" afficher le message d'erreur dans l'echo "plantage de l'insertion", et rien ne se modifie sous MySql.

Y'aurai t'il de l'aide svp!
Merci d'avance.
A voir également:

4 réponses

Utilisateur anonyme
4 avril 2008 à 15:47
Salut,

Essaye d'afficher $update avant de l'exécuter et donne nous le résultat :
$update="UPDATE Maitre SET nommaitre='".$nom."', prenommaitre='".$prenom."', mailmaitre='".$email."', mdpmaitre='".$mdp."', etatmaitre='A'";

echo $update;

mysql_query($update) or die ("plantage de l'insertion");
0
garinsha20 Messages postés 20 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 10 avril 2008
4 avril 2008 à 15:56
La page "valider.php" affiche ceci :
plantage de l'insertion : 1

et avec le code echo $update, ceci :
1plantage de l'insertion : 1

Voilà chef !
0
garinsha20 Messages postés 20 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 10 avril 2008
4 avril 2008 à 16:25
La page "valider.php" affiche ceci :
plantage de l'insertion : 1

et avec le code echo $update, ceci :
1plantage de l'insertion : 1

Y'a une soluce?
Merci
0
Utilisateur anonyme
4 avril 2008 à 16:30
Bizarre que l'affichage de $update te donne 1. Normalement il devrait t'afficher ta requête SQL qu'il va exécuter. Tu es sûr de bien avoir recopié mon code ?
0
garinsha20 Messages postés 20 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 10 avril 2008
4 avril 2008 à 16:34
Re!
Oui effectivement erreur de ma part Désolé!

La page "valider.php" renvoi ceci :
UPDATE Maitre SET nommaitre='Zidane', prenommaitre='Zinedine', mailmaitre='zizou@zizou.com', mdpmaitre='zizou', etatmaitre='A'plantage de l'insertion2 :
0
Utilisateur anonyme
4 avril 2008 à 16:38
Essaye de faire ceci :
$update="UPDATE Maitre SET nommaitre='".$nom."', prenommaitre='".$prenom."', mailmaitre='".$email."', mdpmaitre='".$mdp."', etatmaitre='A'";

$result = mysql_query($update);

if(!$result)
   die('Requête invalide : ' . mysql_error());
else
   echo "Mise à jour effectuée";
0
garinsha20 Messages postés 20 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 10 avril 2008
4 avril 2008 à 16:46
Alors là petit amélioration mais problème dans la bdd MySql!

le nouveau code renvoi ceci :
Mise à jour effectuéeplantage de l'insertion2 :

et le pb sous mysql est que en fait:
j'avais des inscrits de ce style :
1. zidane zinedine zzizou@.com
2. rafael nadal rafa@.com
3. blanc laurent loloà.com
etc..
et maintenant ça me donne ceci dans la base
1. zidane zinedine zzizou@.com
2. zidane zinedine zzizou@.com
3. zidane zinedine zzizou@.com
4. zidane zinedine zzizou@.com
5. zidane zinedine zzizou@.com

est-ce Normal?
Avant ceci , la base de données ne bougeait pas!, il n'y avait aucun UPDATE
là ça a écrasé les autres en fait
0
Utilisateur anonyme
4 avril 2008 à 16:49
Oui c complètement normal. Ta requête ne précise pas de clause WHERE. Elle met donc à jour tous les enregistrements présents dans ta table. Il faudrait que tu puisses affiner ta mise à jour suivant un critère pour ne mettre à jour que l'enregistrement qui va bien. A mon avis ta requête devrait ressembler à ça :
$update="UPDATE Maitre SET nommaitre='".$nom."', prenommaitre='".$prenom."', mailmaitre='".$email."', mdpmaitre='".$mdp."', etatmaitre='A' WHERE idmaitre='".$id."'";
Le plantage de l'insertion 2 je ne vois pas d'où il vient car je ne dois pas avoir le bout de code qui affiche ce message.
0