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ération de données dans une boucle [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut Récupération de données dans une boucle
    Bonjour tout le monde,

    je souhaite lister dans une page le contenu d'une table qui a 2 champ(Champ1 et Champ2) + 3 menus déroulants + un bouton valider par ligne.
    voici mon code ce sera plus parlant:
    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
    <?php 
     
    //-----------------------------------------------------------------------
    // Connexion a la base 
     
    require_once('connexion.php'); 
     
    mysql_select_db($database,$db); 
     
    //-----------------------------------------------------------------------
    //Requete 
    $SQL = 'select Table.champ1,Table.champ2 from Table;'; 
     
    $result = mysql_query($SQL); 
    $total = mysql_num_rows($result); 
     
    echo '<center>Nb de ligne ';echo $total;echo '</center>'; 
     
    //------------------------------------------------------------------------
    // Tableau 
     
    if($total) { 
    // début du tableau 
    echo '<center><table bgcolor="#FFFFFF">'."\n"; 
    // première ligne on affiche les titres 
    echo '<tr>'; 
    echo '<center><td bgcolor="#00FB00"><b><u>champ1</u></b></td></center>'; 
    echo '<center><td bgcolor="#00FB00"><b><u>Champ2</u></b></td></center>'; 
    echo '<center><td bgcolor="#00FB00"><b><u>Menu1</u></b></td></center>'; 
    echo '<center><td bgcolor="#00FB00"><b><u>Menu2</u></b></td></center>'; 
    echo '<center><td bgcolor="#00FB00"><b><u>Menu3</u></b></td></center>'; 
    echo '</tr>'."\n"; 
     
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. 
    while($row = mysql_fetch_array($result)) { 
     
    echo '<tr>'; 
    echo '<center><td bgcolor="#CCCCCC">'.$row['Champ1'].'</td></center>'; 
    echo '<center><td bgcolor="#CCCCCC">'.$row['Champ2'].'</td></center>'; 
     
    //-------Menu1----------- 
    echo '<center><td bgcolor="#CCCCCC"><select name="Menu1"></center>'; 
    echo '<option value="0">0</option>'; 
    echo '<option value="1">1</option>'; 
    echo '<option value="2">2</option>'; 
    echo '<option value="3">3</option>'; 
    echo '</select></td></center>'; 
     
    //-------Menu2-------- 
    echo '<center><td bgcolor="#CCCCCC"><select name="Menu2"></center>'; 
    echo '<option value="0">0</option>'; 
    echo '<option value="1">1</option>'; 
    echo '<option value="2">2</option>'; 
    echo '<option value="3">3</option>'; 
    echo '</select></td></center>'; 
    //-------Menu3------------ 
    echo '<center><td bgcolor="#CCCCCC"><select name="Menu3"></center>'; 
    echo '<option value="0">0</option>'; 
    echo '<option value="1">1</option>'; 
    echo '<option value="2">2</option>'; 
    echo '<option value="3">3</option>'; 
    echo '</select></td></center>'; 
    echo '</tr>'."\n"; 
    //-------Bouton Valider------------ 
     
    //J'aimerai mettre un bouton valider 
     
    } 
    echo '</table></center>'."\n"; 
    // fin du tableau. 
    } 
    else echo 'Pas d\'enregistrements dans cette table...'; 
     
    //----------------------------------------------------------------------
     
    //Fin PHP
    Ce que j'aimerai faire:
    un bouton valider sur chaque ligne et quand je clique dessus les 5 informations de la ligne concernée soit insérée dans une autre table.

    Mon problème:
    Je ne sais pas comment récupérer les 5 valeur(Champ1,Champ2,Menu1,Menu2,Menu3)des que je clique sur valider (vu que je suis dans une boucle)????

    Je m'exprime peut être mal donc n'hésitez pas à me poser des questions si vous avez besoin de plus d'informations.

    Merci d'avance
    Rodinrott

  2. #2
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Architecture :
    • Un formulaire par ligne dans lequel tu as tes 2 champs et ton bouton ;
    Codes :
    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
    
    $_ligne = 0 ;
    
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. 
    while($row = mysql_fetch_array($result)) { 
     
    echo '<tr><form method="post" action=\"ton_script_de_traitement.php?id_ligne=".$_ligne\">'; 
    echo '<center><td bgcolor="#CCCCCC">'.$row['Champ1'].'</td></center>'; 
    echo '<center><td bgcolor="#CCCCCC">'.$row['Champ2'].'</td></center>'; 
     
    //-------Menu1----------- 
    echo '<center><td bgcolor="#CCCCCC"><select name="Menu1"></center>'; 
    echo '<option value="0">0</option>'; 
    echo '<option value="1">1</option>'; 
    echo '<option value="2">2</option>'; 
    echo '<option value="3">3</option>'; 
    echo '</select></td></center>'; 
     
    //-------Menu2-------- 
    echo '<center><td bgcolor="#CCCCCC"><select name="Menu2"></center>'; 
    echo '<option value="0">0</option>'; 
    echo '<option value="1">1</option>'; 
    echo '<option value="2">2</option>'; 
    echo '<option value="3">3</option>'; 
    echo '</select></td></center>'; 
    //-------Menu3------------ 
    echo '<center><td bgcolor="#CCCCCC"><select name="Menu3"></center>'; 
    echo '<option value="0">0</option>'; 
    echo '<option value="1">1</option>'; 
    echo '<option value="2">2</option>'; 
    echo '<option value="3">3</option>'; 
    echo '</select></td></center>'; 
    echo '<input type=\"hidden\" name=\"champ1\" value=\"'.$row['champ1'].'\" />';
    echo '<input type=\"hidden\" name=\"champ2\" value=\"'.$row['champ2'].'\" />';
    
    .'\" >'
    echo '</tr>'."\n"; 
    //-------Bouton Valider------------ 
    echo '<input type=\"button\" name=\"btn1\" value=\"Bouton\" />';
     
    //J'aimerai mettre un bouton valider 
     
    } 
    echo '</table></center>'."\n"; 
    // fin du tableau. 
    } 
    else echo 'Pas d\'enregistrements dans cette table...';
    et dans ton script de traitement, tu rappelles les données de la table source à la ligne numéro $_ligne pour exécuter ta nouvelle requête.

    Bonne continuation

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut Recuperation de données dans une boucle
    Merci d'avoir répondu...

    Champ1 et Champ2 sont tiré d'une table ce n'est pas un formulaire...
    enfin je ne sais pas si je suis clair...

    il y a plusieurs lignes (nombre X,tout dependant se qu'il y a dans la table)

    Champ1|Champ2|Menu1|Menu2|Menu3|Valider
    Champ1|Champ2|Menu1|Menu2|Menu3|Valider
    Champ1|Champ2|Menu1|Menu2|Menu3|Valider
    .....
    etc

    Les menus deroulant comme on le vois dans mon code ils sont rajouté.

    sur chaque ligne il y a un bouton pour valider la ligne concerné et quand tu clique dessus ça insere les valeur de Champ1,Champ2,Menu1,Menu2,Menu3 dans une autre table.


    Mon probleme:
    vu que c une boucle et il a plusieurs enregistrement, comment je fais pour recupere les valeurs des 2 champs et les valeur defini par l'utilisateur dans les 3 menus deroulant?
    On cliquerai sur valider ça post les 5 valeurs de la ligne concerné je les passe dans un script de traitement comme tu me la dit
    et je reviens a la page d'origine(sans la ligne ou on a cliquer mais ça c autre chose).

    Merci
    Rodinrott

  4. #4
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    C'est comme je te le disais alors...
    Il suffit tout simplement dans l'entete de ton formulaire de passer ton paramètre INDEX (<form method="post" action="../script.php?id_ligne=<?php echo $data['index']; ?>">)

    Ensuite, dans ce script, tu récupères les infos utiles à la ligne $data['index'] avec une methode GET et tu fais ton traitement !

    L'astuce ce n'est pas de stocké tes 2 variables directement dans le premier affichage mais juste de récupérer l'identifiant du tuple concerné et ensuite récupérer les champs...

    Tu as compris ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 35
    Par défaut
    voila se que j'ai compris

    je recupere le numero de ligne ou sont stoké mais 2 champs et par la methode get j'envoi mes trois valeurs de menu deroulant.

    Traitement.php(recuperation de valeur):

    recuperation des 3 menu deroulant

    je relis la table et je recupére les deux champ grace au numero de ligne.

    Je ne comprend pas trés bien...

    Merci
    Rodinrott

  6. #6
    Membre éclairé Avatar de rems033
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    513
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 513
    Par défaut
    Citation Envoyé par Rodinrott Voir le message
    voila se que j'ai compris

    je recupere le numero de ligne ou sont stoké mais 2 champs et par la methode get j'envoi mes trois valeurs de menu deroulant.

    Traitement.php(recuperation de valeur):

    recuperation des 3 menu deroulant

    je relis la table et je recupére les deux champ grace au numero de ligne.

    Je ne comprend pas trés bien...

    Merci
    Rodinrott
    A un point près ou ce n'est pas la méthode GET que tu utiliseras dans le traitement.php
    Récupères les valeurs du menu en utilisant un $_POST['menu1'] et $_POST['menu2'].
    Par contre, ta ligne dans ta table source tu la récupère avec un $_GET['index'] et tu le passes en paramètre dans le action du form...

    ce qui pourrais donner à titre exemple...
    fichier.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
     
    <form method="post" action="../traitement.php?id_ligne=<?php echo $data['id_ligne']; ?>">
    <input type="text" name="champ1" value="<?php echo $data['champ1']; ?>">
    <input type="text" name="champ2" value="<?php echo $data['champ2']; ?>">
    <select name="menu1">
      <option....></option> 
      <option....></option>
    </select>
    <select name="menu2">
      <option....></option> 
      <option....></option>
    </select>
    <input type="submit" title="Soumettre">
    </form>
    et dans traitement.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $index = $_GET['id_ligne'] ;
    $champ1 = $_POST['champ1'] ;
    $champ2 = $_POST['champ2'] ;
    $menu1 = $_POST['menu1'] ;
    $menu2 = $_POST['menu2'] ;
     
    // Suite de ton traitement
    D'ailleurs je ne suis même pas sur que tu ai besoin de récupérer l'index de ligne...il faut faire le test avec et sans car je n'ai pas le temps de vérifier...

    Je pense qu'avec tout ca tu pourras avancer...
    bon courage

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

Discussions similaires

  1. Récupération des données dans une boucle for
    Par boubounagh dans le forum Interfaces Graphiques en Java
    Réponses: 22
    Dernier message: 24/10/2011, 16h29
  2. Réponses: 7
    Dernier message: 09/03/2010, 09h23
  3. [D6 => XML] Récupération de données avec une boucle.
    Par Bason_sensei dans le forum Delphi
    Réponses: 1
    Dernier message: 23/05/2006, 13h50
  4. [D6 => XML] Récupération de données dans une balise
    Par Bason_sensei dans le forum Delphi
    Réponses: 10
    Dernier message: 22/05/2006, 17h15
  5. Problème de récupérations de données dans une table mysql
    Par Helpine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 09/03/2006, 19h07

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