Problème Requête UPDATE vers MySql

garinsha20 Messages postés 20 Date d'inscription   Statut Membre -  
 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.
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. 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
    1. garinsha20 Messages postés 20 Date d'inscription   Statut Membre
       
      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
    2. garinsha20 Messages postés 20 Date d'inscription   Statut Membre
       
      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
  2. 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
    1. garinsha20 Messages postés 20 Date d'inscription   Statut Membre
       
      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
  3. 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
    1. garinsha20 Messages postés 20 Date d'inscription   Statut Membre
       
      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
  4. 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