Comment modifier les champs d'un formulaire

cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008 - 26 avril 2008 à 19:03
cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008 - 27 avril 2008 à 13:28
je souhaiterais recevoir de vous une aide. j'ai un formulaire, j'arrive a inserrer les données dans le formulaire, mais concernant les modification, helas ca bloque. si vous pouvez m'aider, faites le. merci.
voici mon code: composé de modification1.php, modification2.php, modification3.php

modification1.php
<html>
  <head>
    <title>modification de données en PHP :: partie 1</title>
  </head>
  <style>
    body {
    font-family: Arial, Sans-Serif;
    font-size: 12px; }

    .fiche {
    background-color: #E0E0E0;
    margin: 10px 30px 5px 30px;
    padding: 5px; }

    .floatadroite {
    float: right;
    text-align: left; }
    </style>

Liste

  <?php
    //connection au serveur:
    $cnx = mysql_connect( "localhost", "root", "" ) ;
 
    //sélection de la base de données:
    $db = mysql_select_db( "test" ) ;
 
    //requête SQL:
    $sql = "SELECT *
          FROM agent" ;
 
    //exécution de la requête:
    $requete = mysql_query( $sql, $cnx ) ;
 
    //affichage des données:
    while( $result = mysql_fetch_array( $requete ) )
     {
    echo '
';
    echo '
';
    echo '[modification2.php?modification=' . $result['Matricule'] . ' Modifier]
';
    echo '[supprimer1.php?supprimer=' . $result['Matricule'] . ' Supprimer]';
    echo '
';
    echo 'Matricule : ' . $result['Matricule'] . '
';
    echo 'Login : ' . $result['Login'] . '
';
    echo 'Mot_de_passe : ' . $result['Mot_de_passe'] . '
'; 
    echo 'Poste : ' . $result['Poste'] . '
';
    echo 'Nom : ' . $result['Nom'] . '
';
    echo 'Prénoms : ' . $result['Prénoms'] . '
';
    echo '
';
    }  
  ?>

</html>

modification2.php
<html>
  <head>
    <title>modification de données en PHP :: partie2</title>
  </head>

  <?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db = mysql_select_db( "test" ) ;
 
  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $Matricule  = $_GET["Matricule_agent"] ;
 
  //requête SQL:
  $sql = "SELECT *
            FROM agent
        WHERE Matricule_agent = ".$Matricule ;
       
  //exécution de la requête:
  $requete = mysql_query( $sql, $cnx ) ;
 
  //affichage des données:
  if( $result = mysql_fetch_array( $requete ) )
  {
  ?>
<form name="insertion" action="modification3.php" method="POST">
  ">
      ----

      Login,
      Login) ;?>">,
   
    ----

      Mot_de_passe,
      Mot_de_passe) ;?>">,
   
    ----

      poste,
      poste) ;?>">,
   
    ----

      Nom,
      Nom) ;?>">,
   
    ----

      Pr&eacute;noms,
      Prénoms) ;?>">,
   
    ----

      &nbsp;,
      &nbsp;,
   
    ----

      ,
   
 

</form>
  <?php
  }//fin if
  ?>

</html>

modification3.php
<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "test" ) ;
 
  //récupération des valeurs des champs:
  //Matricule:
  $Matricule     = $_POST["Matricule"] ;
  //Login:
  $login = $_POST["Login"] ;
  //Mot_de_passe:
  $Mot_de_passe = $_POST["Mot_de_passe"] ;
  //Poste:
  $Poste        = $_POST["Poste"] ;
  //Nom:
  $Nom        = $_POST["Nom"] ;
  //Prénoms:
  $Prénoms        = $_POST["Prénoms"] ;
 
  //récupération de l'identifiant de la personne:
  $Matricule         = $_POST["Matricule"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE agent
            SET Login         = '$Login',
              Mot_de_passe     = '$Mot_de_passe',
          Poste    = '$Poste',
          Nom           = '$Nom',
          Prénoms = '$Prénoms'
           WHERE Matricule_agent = '$Matricule' " ;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>

lorsque j'execute le code voici l'erreur que je recois.

Notice: Undefined index: Matricule_agent in C:\Program Files\EasyPHP 2.0b1\www\Nouveau dossier (5)\modification2.php on line 15

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\Nouveau dossier (5)\modification2.php on line 26
merci pour votre aide.

9 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 avril 2008 à 20:26
Hello,

comme te le dit l'erreur, $_GET['matricule_agent'] n'existe pas.

Pourquoi ? parce que tu as écrit modification2.php?modification=blabla

et pas modification2.php?matricule_agent=blabla

à+
0
cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008
26 avril 2008 à 20:54
donc si  j'ecris          modification2.php?matricule_agent=blabla , ca pourrais marcher
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 avril 2008 à 20:56
Oui s'il n'y a pas de problème ailleurs, à toi de me le dire
0
cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008
26 avril 2008 à 21:13
ok j'essaye et je te fais signe et concernant la 2eme erreur, elle decoule de la premiere ou c'est different
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008
26 avril 2008 à 22:13
j'ai fias comme tu l'a dis, ca marche, mais la 2eme erreur demeure et cette erreur est celle-ci :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\Nouveau dossier (5)\modification2.php on line 26
comment faire pour m'en debarrasser.
merci
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
26 avril 2008 à 22:41
Quelle est l'erreur affichée par sql ? tu devrais trouver grâce à elle.
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
26 avril 2008 à 23:00
Salut,

Ta requête :
//requête SQL:
  $sql = "SELECT *
            FROM agent
        WHERE Matricule_agent = ".$Matricule ;

ne s'est pas exécutée correctement, elle n'a donc retourné aucun résultat.

La fonction mysql_query() ne retourne pas une requête, mais un résultat, ou FALSE en cas d'erreur.
Tu devrais (tu DOIS) faire un contrôle d'erreur lors de l'exécution de tes requêtes.
Le minimum (pas le plus propre, mais le minimum pour debugger) c'est un truc dans le genre :

$resultat = mysql_query($sql) or die('Erreur n° ' . mysql_errno() . ' : ' . mysql_error());

Bon, tes variables, tu les appelles comme tu veux... Mais appeler $requete un résultat d'exécution de requête, c'est absurde et ça conduit à une incompréhension du code, y compris pour son auteur (toi).

Neige

N'hésitez pas à lire la doc de PHP avant de poser des questions triviales...
0
cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008
27 avril 2008 à 12:01
j'essaye de voir et je te tiens au courant
0
cs_dekec Messages postés 12 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 5 mai 2008
27 avril 2008 à 13:28
je crois que ca marche, les deux erreurs n'apparaissent plus. cpdt un autre pb survient; lorsque je valide le champ modifier du formulaire j'obtiens ce tabeau:

Login, , ----
Mot_de_passe, , ----
poste, , ----
Nom, , ----
Prénoms, , ----
 ,  , ----

comment faire pour qu'il me ramene les champs avec les elements à modifier.
merci
0