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 :

Récupérer données Post d'un tableau


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut Récupérer données Post d'un tableau
    Bonjour à tous,
    je souhaite récupérer les données d'un formulaire /tableau pour ajouter à une table adhérent

    j'ai un problème de syntaxe sur la ligne input, que je n'arrive pas à résoudre

    un œil neuf et averti me serait d'un grand secours

    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
    <?php
     
    /**Recupere variables d'un tableau formulaire
     */
    echo "<div> <h1> Ajouter Adhérent </h1> </div>"; //Titre
     
    echo "<form name=\"frmModif\" method=\"post\" >";
     
    echo "<table align=center width=38% border=1px background-color=#f2e3c4>";
     
    echo "<tr><td>&nbsp;&nbsp;Email:</td>   <td>    <input type=\"text\" name=\"email_adh\" value=\" if ( isset($_POST[\'email_adh\']) ) echo htmlentities($_POST[\'email_adh\'])  </td></tr>">;
    // et les suivants
    echo"</table>";
    echo "<br>";
    echo '    <div style="text-align:center;"><input type="submit" name="submit" value="Envoyer l\'Ajout"></div>'.    "\n";
    echo "<br>";
    echo "</form>";
    //echo"stop2";
     
     
    ?>
    merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    ton input n'est pas fermé, de plus l'encapsulation PHP et HTML n'est pas faite :

    voici le code à modifier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type=\"text\" name=\"email_adh\" value=\"<?php if ( isset($_POST[\'email_adh\']) ) echo htmlentities($_POST[\'email_adh\'])  ?>\" > </td></tr>">;
    J'espère que ca pourra t'aider.

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut recettion d'un post sur une seule page
    Merci Antony pour ta réponse, j'ai toujours la même erreur de syntaxe.

    pour Mathieu, c'est bien de laisser un commentaire , j'eus préféré, qu'il soit constructif
    j'essaye de faire un tableau de mise à jour INSERT par post sur:
    * 1 seule page d'une bdd
    * en php
    si tu as une idée constructive, je suis preneur
    Cordialement

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    J'ai vu l'erreur, en fait c'est l'echo des POST qui est mauvais, ci-dessous la bonne ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<tr><td>&nbsp;&nbsp;Email:</td>   <td>    <input type=\"text\" name=\"email_adh\" value=\"<?php if ( isset($_POST["email_adh"]) ) echo $_POST["email_adh"];  ?>\" > </td></tr>">;
    J'espère que ca pourra t'aider.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    oulà faut que j'arrête de fumer !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $mail = "";
    if ( isset($_POST["email_adh"]) ) $mail = $_POST["email_adh"];
     
    echo "<tr><td>&nbsp;&nbsp;Email:</td>   <td>    <input type=\"text\" name=\"email_adh\" value=\"".$mail."\" > </td></tr>">;
    J'espère que ca pourra t'aider (excuses-moi pour mes réponses précédentes).

  6. #6
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Bonjour,

    C'est vrai que vu de cet angle la, c'est pas très constructif (humeur du moment)...

    Je ne sais pas trop ou se situe ton code, ni pourquoi tu réalises des "echo" avec du code HTML dedans.

    Tu ne respectes pas les standards W3C, ni les bases de la séparation des couches...

    Voila une méthode plus propre de coder :

    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
    <div> 
      <h1>Ajouter Adhérent</h1> 
    </div>
    <form name="frmModif" method="post" action="???" >
      <table align="center" width="38%" border="1px" background-color="#f2e3c4" style="">
        <tr>
          <td>Email:</td>
          <td>    
            <input type="text" name="email_adh" value="<?php if ( isset($_POST['email_adh']) ) echo htmlentities($_POST['email_adh']) ?>"
          </td>
        </tr>
      </table>
      <br />
      <div style="text-align:center;">
        <input type="submit" name="submit" value="Envoyer l'Ajout" />
      </div>
      <br />
    </form>
    TABLE ou DIV : décides toi...

    Pour les conseils :

    - Regardes du coté des DOCTYPE et choisi celui qui te sembles le plus adapté a ton cas.
    - Ne confonds pas langage serveur (PHP), description de tes pages (HTML ou xHTML), style de tes pages (CSS).
    - Une fois que tes pages te semblent correctes, soumets les a un validateur.
    - Indente ton code source.
    - Utilises un éditeur de code.

    Voila...

    Cordialement,

    Mathieu

  7. #7
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    merci a vous deux,
    je rentre de province ce soir,

    je vais essayer demain, avant la fête

    je vous souhaite un bon réveillon et une bonne année 2011

    je vous tiens au courant

    Bonne soirée
    Claude

  8. #8
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    Bonjour
    je viens de faire les essais
    1-le code d'Antony fonctionne bien pour envoyer le POST sur une autre page html et récupérer les données
    2- le code de Mathieu me semble répondre exactement à ma recherche cad pouvoir récupérer les variables du post et de faire l'INSER sur une seule page, il fonctionne pour la création du tableau, mais je n'arrive pas à récupérer les variables et de faire l'INSER sur la table
    je pense que mon code décode...complètement

    si vous avez une solution, c'est dur à 63 ans de se mettre à la programmation pour une association !!!!!!
    http://cg-aisne.org

    Bon réveillon et Meilleurs vœux 2011
    Fichiers attachés Fichiers attachés

  9. #9
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Salut,

    Essayes ça :

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    <?php
    require_once("_connect.php");
     
    // Cas de l'insertion (l'adhérant n'existe pas dans la base de données)
    $sql = "INSERT INTO galette2_adherents (
              numero_adh, 
              nom_adh, 
              prenom_adh, 
              id_statut, 
              pseudo_adh, 
              login_adh
            ) VALUES (
              '".$numero_adh."', 
              '".$nom_adh."', 
              '".$prenom_adh."', 
              '".$id_statut."', 
              '".$pseudo_adh."', 
              '".$login_adh."'
            )";
     
    $result = mysql_query($sql);
     
    if ($result)
    {
      header("Location: essai.php");
      // Marche à condition qu'il n'y ai rien d'écrit précédemment dans la page
    }
    ?>
    <html>
      <head>
        <link rel="stylesheet" type="text/css" href="style.css">
        <link rel="icon" type="image/ico" href="/favicon.ico">
        <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
        <meta http-equiv="Content-Type" content="text/html; charset=iso 8859-1">
      </head>
      <body>
        <div>	
          <h1>Ajouter Adh&eacute;rent</h1>	
        </div>
        <form name="frmAjout" method="post" action="<?php echo $_SERVER['PHP_SELF']?>" >
          <table align="center" width="38%" border="1px" style="background-color:#f2e3c4">
              <tr>
                <td>Num&eacute;ro Adh&eacute;rent : </td>
                <td>
                  <input type="text" value="<?php if ( isset($_POST['numero_adh']) ) echo htmlentities($_POST['numero_adh']) ?>" />
                </td>
                <td>
                  <i>&nbsp;&nbsp;&nbsp; N° Adhérent = CGA0000
                </td>
              </tr>
              <tr>
                <td>Nom :</td>
                <td>		
                  <input type="text" name="nom_adh" value="<?php if ( isset($_POST['nom_adh']) ) echo htmlentities($_POST['nom_adh']) ?>" />
                </td></tr>
              <tr>
                <td>Pr&eacute;noms :</td>
                <td>
                  <input type="text" name="prenom_adh" value="<?php if ( isset($_POST['prenom_adh']) ) echo htmlentities($_POST['prenom_adh']) ?>" />
                </td>
              </tr>
              <tr>
                <td>Statut :</td>
                <td>
                  <input type="text" name="id_statut" value="<?php if ( isset($_POST['id_statut']) ) echo htmlentities($_POST['id_statut']) ?>" />
                </td>
              </tr>
              <tr>
                <td>Pseudo Adh&eacute;rent :</td>
                <td>
                  <input type="text" name="pseudo_adh" value="<?php if ( isset($_POST['pseudo_adh']) ) echo htmlentities($_POST['pseudo_adh']) ?>" />
                </td>
              </tr>
              <tr>
                <td>Login Adh&eacute;rent :</td>
                <td>
                  <input type="text" name="login_adh" value="<?php if ( isset($_POST['login_adh']) ) echo htmlentities($_POST['login_adh']) ?>" />
                </td>
              </tr>
          </table>
          <br/>
          <div style="text-align:center;">
            <input type="submit" name="submit" value="Envoyer l'Ajout" />
          </div>
          <br />
        </form>
      </body>
    </html>
    Pas testé cependant...

    Cordialement,

    Mathieu

  10. #10
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    Bonjour Mathieu et merci pour ton script,
    je viens de l'essayer , le tableau est ok
    j'ai une erreur sur les premières lignes du php

    Notice: Undefined variable: prenom_adh in D:\wamp\www\adherents\essai2.php on line 15
    qui correspond à:
    '".$prenom_adh."',
    et les lignes identiques

    Merci de ton aide

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    les donnée viennent de post donc pour les recuperer c'est par exemple $_POST['prenom_adh']

    mathieu44800 > ton code ca va pas dutout, y'a aucune vérification des variable, en plus elle n'existe pas, ton code est soumis au injection SQL même si ca reste de l'ajout, aucune verfication des erreur sql en cas d'échec,
    au niveau html les &eacute; et compagnie n'ont rien a faire la, le action="<?php echo $_SERVER['PHP_SELF']?>" est a déconseiller, l'adresse du script php n'est pas forcement le même que l'adresse (rewriting), c'est plus htmlspecialschars que htmlentities, si y'a des soucis d'encodage tu ne pourras pas les détecter, <table> de doit pas servir pour la mise en forme, apres pour les attribut c'est a toi de voir, la c'est style HTML 4 pourquoi pas c'est correct

    anthony89 > en HTML, <input> n'as pas besoin d'être fermer c'est la différence avec le XHTML

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour Stealth35,
    Je te souhaite d'abord de joyeuses fêtes.
    Je te remercie de vouloir m'aider et de donner des précisions dans mes explications qui peuvent être imprécises, mais lorsque je parlais de fermer la balise, je faisait référence au caractère ">" qui manquait dans le code source de Claude77, non pas au "</inuput>" qui n'existe d'ailleurs pas.

  13. #13
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    Bonjour à tous,
    merci stealth de tes commentaires, Mathieu et Antony ont pris le temps de m'aider, pour l'instant je ne demande pas un script qui dise papa maman, mais un script qui me permette de mettre à jour ma BDD
    j'ai essayé ta modif, mais j'ai les mêmes erreurs sur les mêmes lignes
    mais je n'ai peut être pas tout compris à ton message
    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
    <?php
    //script essai2.php
    	require_once("_connect.php");
     
    // Cas de l'insertion (l'adhérant n'existe pas dans la base de données)
    $sql = "INSERT INTO galette2_adherents (
              numero_adh,
              nom_adh,
              prenom_adh,
              id_statut,
              pseudo_adh,
              login_adh
            ) VALUES (
              '".$_POST['numero_adh']."',
              '".$_POST['nom_adh']."',
              '".$_POST['prenom_adh']."',
              '".$_POST['id_statut']."',
              '".$_POST['speudo_adh']."',
              '".$_POST['login_adh']."'
            )";
     
    $result = mysql_query($sql);
     
    if ($result)
    {
    	header("Location: essai2.php");
    	// Marche à condition qu'il n'y ai rien d'écrit précédemment dans la page
    }
    ?>
    Notice: Undefined index: numero_adh in D:\wamp\www\adherents\essai2.php on line 13
    et même erreur sur les lignes suivantes

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    Bonjour,

    ce message veut dire que "prenom_adh" n'existe pas en POST.
    afin d'isoler un tel problème, il suffit d'afficher les données qui sont envoyées.

    Code à essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //la balise pre met en forme le print_r.
    //sans cela, le code sera difficilement lisible
    echo "<pre>";
    //en fin de compte, $_POST n'est rien d'autre qu'un tableau PHP...
    print_r($_POST);
    echo "</pre>";
    J'espère que ca pourra t'aider

  15. #15
    Membre averti
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Points : 396
    Points
    396
    Par défaut
    Bonjour,

    Il faut ajouter un ça :

    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
     
    <?php
    //script essai2.php
    require_once("_connect.php");
     
    if (isset($_POST['numero_adh'])) 
    {
    // Cas de l'insertion (l'adhérant n'existe pas dans la base de données)
    $sql = "INSERT INTO galette2_adherents (
    numero_adh,
    nom_adh,
    prenom_adh,
    id_statut,
    pseudo_adh,
    login_adh
    ) VALUES (
    '".$_POST['numero_adh']."',
    '".$_POST['nom_adh']."',
    '".$_POST['prenom_adh']."',
    '".$_POST['id_statut']."',
    '".$_POST['speudo_adh']."',
    '".$_POST['login_adh']."'
    )";
     
    $result = mysql_query($sql);
     
    if ($result)
    {
    header("Location: essai2.php");
    // Marche à condition qu'il n'y ai rien d'écrit précédemment dans la page
    }
    }
    ?>
    Faut que je penses à me relire des fois...

    Cordialement,

    Mathieu

  16. #16
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    Bonjour ,
    j'ai fait ta modif
    il n'y a plus d'erreur de syntaxe mais ça n'enregistre pas
    il semble que je récupère pas le numéro d'adhérent et comme il est dans le isset,
    avec le code d'Antony je récupère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Array
    (
        [nom_adh] => dibois
        [prenom_adh] => gg
        [id_statut] => 1
        [pseudo_adh] => cga2500
        [login_adh] => CGA2500
        [submit] => Envoyer l'Ajout
    )
    on est prés du but , juste une petite conne.... peut être au niveau de l'input

    Cordialement

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 99
    Points : 127
    Points
    127
    Par défaut
    après vérifications de ton source, le input du numéro d'adhérent n'a pas de name
    il suffit d'en ajouter un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <tr>
                <td>Num&eacute;ro Adh&eacute;rent : </td>
                <td>
                  <input type="text" name="numero_adh" value="<?php if ( isset($_POST['numero_adh']) ) echo htmlentities($_POST['numero_adh']) ?>" />
                </td>
                <td>
                  <i>&nbsp;&nbsp;&nbsp; N° Adhérent = CGA0000
                </td>
              </tr>

  18. #18
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 168
    Points : 62
    Points
    62
    Par défaut
    un grand merci à vous deux pour votre aide de j'ai appréciée
    çà fonctionne, je vais terminer avec le reste du formulaire
    et je mettrai votre script sur le site avant de clôturer
    Bonne soirée

  19. #19
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par anthony89 Voir le message
    Bonjour Stealth35,
    Je te souhaite d'abord de joyeuses fêtes.
    Je te remercie de vouloir m'aider et de donner des précisions dans mes explications qui peuvent être imprécises, mais lorsque je parlais de fermer la balise, je faisait référence au caractère ">" qui manquait dans le code source de Claude77, non pas au "</inuput>" qui n'existe d'ailleurs pas.
    autant pour moi

Discussions similaires

  1. récupérer données post par foreach
    Par Linu6 dans le forum Langage
    Réponses: 2
    Dernier message: 13/09/2008, 18h35
  2. Réponses: 3
    Dernier message: 19/01/2008, 11h20
  3. Envoyer des données POST à une page web puis récupérer l'URL
    Par Ze moi dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/04/2007, 18h18
  4. Récupérer données d'un tableau
    Par vallgui dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/10/2006, 11h52
  5. Récupérer des données postés
    Par doudoustephane dans le forum Langage
    Réponses: 2
    Dernier message: 02/11/2005, 23h11

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