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 :

recuperation des données sous forme de liste


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Points : 11
    Points
    11
    Par défaut recuperation des données sous forme de liste
    Bonjour,

    voila j'essais de recuperer à partir de la base des informations que je les metterai sous forme de liste deroulante.

    actuellement j'arrive à recuperer la premiere ligne. j'utilise pour ca while mais ca affiche pas le reste.

    le sujet concerne un programme de bon de commande.

    c'est un formulaire de modification de bon. Un bon de commande peut contenir plusieurs produits. Ce sont ces produits que je voudrais les recuperer et modifier.

    voici le code actuel:

    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
    $req2 = $bdd->prepare("SELECT bondecommande.code_commande, article.des_article, ligne_commande.pu_article, ligne_commande.qty_cde FROM ligne_commande
    INNER JOIN bondecommande ON ligne_commande.num_commande = bondecommande.Num_commande
    INNER JOIN article ON ligne_commande.num_article = article.num_article
    WHERE bondecommande.code_commande = :code_BC");
    $req2->bindParam(":code_BC",$bc);
    $req2->execute();
     
    $req3 = $bdd->prepare('SELECT des_article FROM article ORDER BY des_article');
    $req3->execute() or die(print_r($reqq->errorInfo()));
     
     
     
    <table class="dTable">
    <thead>
        <tr>
            <th><div align="center">Code article</div></th>
            <th><div align="center">Qty à commander</div></th>
             <th><div align="center">Prix unitaire</div></th>
            <th></th>
        </tr>
    </thead>
     
    <tfoot>
    <th><input type="button" value="retour" onClick="document.location.href = document.referrer" /></th>
    <th><input type="submit" name="valider" value= "Valider" /></th>
    <th><input type="submit" name="rejeter" value= "Rejeter" /></th>
    </tfoot>
     
    <tbody>
    <?php
    while($datas=$req2->fetch())
    {
    //var_dump($datas[1]);
    ?>
       <tr>
       <td><select name='des_article' ><?php while ($datas3=$req3->fetch()) {?><option value="<?php echo $datas3[0]; ?>" <?php echo $datas[1]==$datas3[0] ? ' SELECTED ' : '' ; ?>><?php echo htmlentities($datas3[0]); ?></option><?php } ;$req3->closeCursor();?></select></td>
            <td><input type="text" name="qty_article" value="<?php echo $datas[3] ;?> "/></td>
            <td><input type="text" name="pu_article" value="<?php echo $datas[2]; ?> "/></td>
     
     
     
        </tr><?php
    }
    $req2->closeCursor();
        ?>
     
    </tbody>
     
    </table>
    le problème en image:

    Nom : image.png
Affichages : 394
Taille : 20,2 Ko



    A vous.

  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
    Tu ne peux pas fetcher 2 fois le resultat d'une requête.
    - mets tes résultats dans un tableau
    - travaille avec des ids et pas avec des libellés
    - écris ton code plus lisiblement
    - utilise des tableaux indexés pour les resultats des requêtes

    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
     
    $req3 = $bdd->prepare('SELECT id_article, des_article FROM article ORDER BY des_article');
    $req3->execute() 
    while ($datas3=$req3->fetch(PDO::FETCH_ASSOC)) { 
        $tblArticle[$datas3['id_article']] = $datas3['des_article'];
    }
     
    while($datas=$req2->fetch())
    {
    echo '<tr>
       <td><select name="des_article" >';
    foreach ($tblArticle as $id=>$des) {
         $selected = ($id == $datas['id_article']) ? ' selected="selected" ' : '';
         echo '<option value="' . $id . '"' . $selected . '>' . htmlentities($des) . '</option>';
    }
    echo '</select>
        </td>
            <td><input type="text" name="qty_article" value="' .  $datas[3] . '"/></td>
            <td><input type="text" name="pu_article" value="' . $datas[2] .'"/></td>
        </tr>';
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Points : 11
    Points
    11
    Par défaut
    Merci vincent. J'ai essayé ton code mais ca ne reprend pas le code article correspondant au numéro de bon de commande en question. Il affiche tout simplement la liste déroulante. j'ai peur que le "selected" ne marche pas.

  4. #4
    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
    Tu as que j'avais utilisé "id_article" partout ?
    Il faut adapter le reste de ton code.

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Points : 11
    Points
    11
    Par défaut
    C'est bon j'ai trouvé le probleme.

    voici le code adapté à ma situation:

    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
    <?php
    $req3 = $bdd->prepare('SELECT num_article, des_article FROM article ORDER BY des_article');
    $req3->execute();
    while ($datas3=$req3->fetch(PDO::FETCH_ASSOC)) {
        $tblArticle[$datas3['num_article']] = $datas3['des_article'];
    }
    
    while($datas=$req2->fetch())
    {
    echo '<tr>
       <td><select name="des_article" >';
    foreach ($tblArticle as $id=>$des) {
         $selected = ($des == $datas['des_article']) ? ' selected="selected" ' : '';
         echo '<option value="' . $id . '"' . $selected . '>' . htmlentities($des) . '</option>';
    }
    echo '</select>
        </td>
            <td><input type="text" name="qty_article" value="' .  $datas[3] . '"/></td>
            <td><input type="text" name="pu_article" value="' . $datas[2] .'"/></td>
        </tr>';
    }
    
    
    
    ?>

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/03/2010, 13h48
  2. afficher des données sous forme de liste
    Par yannick9 dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/08/2007, 14h32
  3. [VB.Net] recuperer des données sous la forme 0001
    Par eown dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/05/2006, 12h32
  4. renvoyer des données sous forme de XML hiérarchique
    Par DiGueDao dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/01/2005, 18h06
  5. Exporter des données sous forme de requetes
    Par Pasiphae dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 06/10/2004, 17h27

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