Problème Requête UPDATE vers MySql

garinsha20 Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
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
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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
 
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   Statut Membre Dernière intervention  
 
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
 
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   Statut Membre Dernière intervention  
 
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
 
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