IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Modification de données


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut Modification de données
    bonjour a tous j'ai sérieusement besoin de vos conseils .En fait je desire modifier des données de ma base de donnee a travers un formulaire, pour cela j'ai fait deux fichiers:modifieragent que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
    require_once("Connexion.php");
     
    error_reporting(E_ALL);
    if (isset($_POST['modifier']))
    {
     // $num= $_GET["id_ag"];
     
       $id_ag = $_POST['id_ag'];
       $nom = $_POST['nom'];
       $prenom = $_POST['prenom'];
       $fonction_ag= $_POST['fonction_ag'];
       $contact= $_POST['contact'] ;
       $mail_ag =$_POST['mail_ag'];
       $adresse = $_POST['adresse'];
       $login = $_POST['login'];
     
    $sql='UPDATE agent SET nom="'.$nom.'",prenom="'.$prenom.'",fonction_ag="'.$fonction_ag.'",contact="'.$contact.'",mail_ag="'.$mail_ag.'",adresse="'.$adresse.'",login="'.$login.'" WHERE id_ag ="'.$num.'"';
    $result=$db->query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    }
     
    ?>
    et formulairemodifagent.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
    require_once("Connexion.php");
    ?>
    <?php
    error_reporting(E_ALL);
    if(isset($_GET["id_ag"]))
     
     
    $num =isset($_GET["id_ag"]) ? $_GET["id_ag"] : "";
    //var_dump($num);
    $sql= 'SELECT nom,prenom,fonction_ag,contact,mail_ag,adresse,login FROM agent WHERE id_ag="'.$num.'"';
    $reponse=$db->query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data=$reponse->fetch();
     
     
     
    ?>
    <div class="panel panel-green">
      <div class="panel-heading">
        <h3 class="panel-title">MODIFIER UN AGENT</h3>
      </div>
    <div class="panel-body">
    <form class="form-horizontale">
    <div class="container-fluid">
    <section class="container">
          <div class="container-page">           
             <div class="col-lg-6">
     <form class="form-horizontal"  role="form" action="Modifieragent.php" method="POST"> 
    <div class="form-group col-lg-12" class="form-inline">
          <input name="nom" class="form-control" type="text" value="<?php echo $data['nom'];?>">
        </div>
        <div class="form-group col-lg-12">
          <input name="prenom" class="form-control" type="text" value="<?php echo $data['prenom']; ?>">
         </div>
        <div class="form-group col-lg-12">
          <input name="fonction_ag" class="form-control" type="text" value="<?php echo $data['fonction_ag']; ?>">
         </div>
         <div class="form-group col-lg-12">
         <input name="contact" class="form-control" type="text" value="<?php echo $data['contact']; ?>">
         </div>
         <div class="form-group col-lg-12">
         <input name="mail_ag" class="form-control" type="text"   value="<?php echo $data['mail_ag'];?>">
        </div>
        <div class="form-group col-lg-12">
         <input name="adresse" class="form-control" type="text"  value="<?php echo $data['adresse'];?>">
        </div>
        <div class="form-group col-lg-12">
         <input name="login" class="form-control" type="text"  value="<?php echo $data['login'];?>">
        </div>
          <div class="col-md-12">
             <input type="submit" name="modifier" class="btn btn-primary" value="MODIFIER">
             <input type="reset" name="annuler" class="btn btn-success" value="ANNULER"> 
             </div>
             </form>
          </div>
          </div>
       </section>
    </div>
    jusqu'ici la selection se passe bien,mais lorsque je veux modifier j'ai cette erreur:
    Undefined variable: num in C:\wamp\www\gene\formulairemodifagent.php on line 23
    s'il vous plaît aidez moi a corriger cette erreur !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans le premier fichier tu utilises $num alors qu'elle n'est pas définie.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut
    salut merci de me reondre .Meme après avoir definie cette variable l'erreur persiste !

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Exactement la même erreur ? Peux-tu poster le code corrigé ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut
    oui la même erreur !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php
    require_once("Connexion.php");
     
    error_reporting(E_ALL);
     
    $num = $_GET["id_ag"] ;
     
       $id_ag= $_POST['id_ag'];
       $nom = $_POST['nom'];
       $prenom = $_POST['prenom'];
       $fonction_ag= $_POST['fonction_ag'];
       $contact= $_POST['contact'] ;
       $mail_ag =$_POST['mail_ag'];
       $adresse = $_POST['adresse'];
       $login = $_POST['login'];
     
    $sql='UPDATE agent SET nom="'.$nom.'",prenom="'.$prenom.'",fonction_ag="'.$fonction_ag.'",contact="'.$contact.'",mail_ag="'.$mail_ag.'",adresse="'.$adresse.'",login="'.$login.'" WHERE id_ag ="'.$num.'"';
    $result=$db->query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    }
     
    ?>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Cela m'etonnerait que ce soit exactement la même erreur.
    Es-tu sûr d'avoir "id_ag" une fois en POST et une fois en GET ? dans le formulaire que tu nous as montré en tout cas il n'y ni l'un ni l'autre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut
    je ne comprend pas trop ce que tu dis mais je reformule ma préocupation.En fait lorque je clique dur modifier dans ma liste des agents il 'y a une récupération de l'id de l'agent sur lequel je viens et ses informations sont récuperer dans le formulaire que je vous ait présenter ,a ce niveau il n'ya pas de problème mais c'est lorsque je désire modifier un élement dans ce formulaire que je me retrouve avec cette erreurs ! malgré avoir définie ma variable l'erreur demeure .Voilà j'espère que j'ai été plus explicite !merci

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ remplace simplement $num par $id_ag dans tes premiers codes.

    Pour des raisons évidentes de simplicité, il vaut mieux utiliser les mêmes noms pour les variables, champs, name,....
    Pourquoi utiliser "num" alors que la données s'appelle "id_ag" ?

    2/ Dans ton formulaire, je n'ai pas vu id_ag.
    Tu peux le transmettre avec un input caché (type="hidden") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          <input name="id_ag" type="hidden" value="<?php echo $data['id_ag'];?>">
    3/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET["id_ag"]))
    Il n'y a pas d'accolades { } !
    Donc, seul la ligne d'instruction suivante rentre dans la condition. Ce qui n'est pas l'action voulue.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut
    ok je voit tout ça et je te réecris !

  10. #10
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut
    salut !j'ai fait tout ce tu m'as dit mais la modification ne se fait pas .voici le formulaire(il n'a pas de problème)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <?php
    require_once("Connexion.php");
    ?>
    <?php
    error_reporting(E_ALL);
    if(isset($_GET["id_ag"])){
     
     
    $id_ag =isset($_GET["id_ag"]) ? $_GET["id_ag"] : "";
    //var_dump($num);
    $sql= 'SELECT id_ag, nom,prenom,fonction_ag,contact,mail_ag,adresse,login FROM agent WHERE id_ag="'.$id_ag.'"';
    $reponse=$db->query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data=$reponse->fetch();
     
    }
     
    ?>
    <div class="panel panel-green">
      <div class="panel-heading">
        <h3 class="panel-title">MODIFIER UN AGENT</h3>
      </div>
    <div class="panel-body">
    <form class="form-horizontale">
    <div class="container-fluid">
    <section class="container">
          <div class="container-page">           
             <div class="col-lg-6">
     <form class="form-horizontal"  role="form" action="Modifieragent.php" method="POST"> 
    <div class="form-group col-lg-12" class="form-inline">
    <div class="form-group col-lg-12">
        <input name="id_ag" type="hidden" value="<?php echo $data['id_ag'];?>">
        </div>
        <div class="form-group col-lg-12">
          <input name="nom" class="form-control" type="text" value="<?php echo $data['nom'];?>">
        </div>
        <div class="form-group col-lg-12">
          <input name="prenom" class="form-control" type="text" value="<?php echo $data['prenom']; ?>">
         </div>
        <div class="form-group col-lg-12">
          <input name="fonction_ag" class="form-control" type="text" value="<?php echo $data['fonction_ag']; ?>">
         </div>
         <div class="form-group col-lg-12">
         <input name="contact" class="form-control" type="text" value="<?php echo $data['contact']; ?>">
         </div>
         <div class="form-group col-lg-12">
         <input name="mail_ag" class="form-control" type="text"   value="<?php echo $data['mail_ag'];?>">
        </div>
        <div class="form-group col-lg-12">
         <input name="adresse" class="form-control" type="text"  value="<?php echo $data['adresse'];?>">
        </div>
        <div class="form-group col-lg-12">
         <input name="login" class="form-control" type="text"  value="<?php echo $data['login'];?>">
        </div>
          <div class="col-md-12">
             <input type="submit" name="modifier" class="btn btn-primary" value="MODIFIER">
             <input type="reset" name="annuler" class="btn btn-success" value="ANNULER"> 
             </div>
             </form>
          </div>
          </div>
       </section>
    </div>
    et le code de modification qui lui ne s'execute pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    <?php
    require_once("Connexion.php");
     
    error_reporting(E_ALL);
     
    $id_ag =$_POST['id_ag'];
       $nom =$_POST['nom'];
       $prenom =$_POST["prenom"];
       $fonction_ag =$_POST["fonction_ag"];
       $contact =$_POST["contact"];
       $mail_ag =$_POST["mail_ag"];
       $adresse =$_POST["adresse"];
       $login =$_POST["login"];
       /*var_dump($id_ag);
       var_dump($nom);
       var_dump($prenom);
        var_dump($fonction_ag);
         var_dump($contact);
          var_dump($mail_ag);
           var_dump($adresse);
            var_dump($login);*/
     
    $sql='UPDATE agent SET nom="'.$nom.'",prenom="'.$prenom.'",fonction_ag="'.$fonction_ag.'",contact="'.$contact.'",mail_ag="'.$mail_ag.'",adresse="'.$adresse.'",login="'.$login.'" WHERE id_ag ="'.$id_ag.'"';
    $result=$db->query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    ?>
    merci de m'aider!

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ tu utilises PDO pour la connexion ?
    Alors il faudrait penser à PREPARER les requêtes pour éviter les injections SQL.
    on ne mets JAMAIS directement des variables (surtout provenant de POST ou GET) DANS une requête SQL !

    2/ tu as 2 balises <form class="form-horizontale"...
    et des <div> à profusion... dont certaines ne sont pas fermés (ou pas au bon endroit)
    => Améliore l'INDENTATION du code : tu y verras plus clair

    3/ Pour le début du fichier form :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    require_once("Connexion.php");
    error_reporting(E_ALL);
     
    // Récupération de l'identifiant via GET
    $id_ag = isset($_GET["id_ag"]) ? intval($_GET["id_ag"]) : 0; // numérique
     
    // requête : récupération des infos de la ligne concernée
    $sql = "SELECT id_ag, nom, prenom, fonction_ag, contact, mail_ag, adresse, login 
    	FROM agent 
    	WHERE id_ag='".$id_ag."'";
    $reponse = $db->query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = $reponse->fetch();
     
    ?>
    ...

    4/ Quant à la modification :
    les var_dump() affichent-ils les bonnes données ?
    que renvoie un echo $sql; ?
    Dernière modification par Invité ; 27/09/2016 à 19h43.

  12. #12
    Membre à l'essai
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2015
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2015
    Messages : 44
    Points : 13
    Points
    13
    Par défaut
    salut merci à toi
    1) j'utilise PDO pour la connexion
    pour les requetes preparées je maitrise pas trop mais je vais m'y mettre ! si tu peux aussi avec lien de cours sur PDO

    2)pour les balises forms j'en ai suppimer une et j'ai indenté il ya avait des div qui n'etaient pas fermés

    3)pour la modification les données s'affichent maintenant et la modification se passe bien!
    merci pour les leçons !

  13. #13
    Invité
    Invité(e)
    Par défaut
    Alors, * ?
    (* bouton ci-dessous)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JTable] Interdire la modification des données ?
    Par Cyborg289 dans le forum Composants
    Réponses: 7
    Dernier message: 25/02/2013, 11h40
  2. Réponses: 2
    Dernier message: 21/03/2006, 16h22
  3. Modification des données impossible
    Par Virgile59 dans le forum Access
    Réponses: 8
    Dernier message: 03/03/2006, 15h41
  4. Réponses: 6
    Dernier message: 15/02/2006, 15h02
  5. [MySQL] Modification de données utilisateurs
    Par Paniez dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 05/02/2006, 23h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo