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

Langage PHP Discussion :

Présentation de données issues d'une requête MySQL


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2019
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2019
    Messages : 138
    Points : 39
    Points
    39
    Par défaut Présentation de données issues d'une requête MySQL
    Bonjour,

    A l'issue d'ne requête Mysql, j'obtiens les données sous la forme qui est dans le fichiers pdf ci-joint.
    Dans ce format, la valeur de la colonne service se répète autant de fois qu'il y'a d'articles or je veux grouper les articles par service.
    C'est à dire diviser la colonne service en autant de lignes qu'il y'a d'articles pour un nom de service.
    Voice mon code
    Code html : 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
    <table align="center" id="tab_jtrav" class="sortie_jrnal_travaux" style="width:100%" >
    <tr>
    <th style="width:10%;text-align:center">Service</th>
    <th style="width:15%;text-align:center">Designation</th>
    <th style="width:15%;text-align:center">Quantité</th>
    <th style="width:16%;text-align:center">Prix unitaire</th>
    <th style="width:8%;text-align:center">Montant</th>
    </tr>
     
    <?php
    include(dirname(__FILE__).'/../functions.php');
     $bdd_MCHNMFT=connect();
    $repponseart_bon_sorties = $bdd_MCHNMFT->query('select SV.nom_service,AR.designation_article
         ,   ST.prix_unitaire
         ,   sum(ST.montant) as mt
         ,   sum(ST.quantite_sortie) as qte
    from services as SV
    inner join     bon_travauxservices as BN
       on BN.service_id = SV.service_id
    inner join     sorties_bon as ST
       on ST.bontravaux_id  = BN.bontravaux_id 
    inner join    articles as AR
       on AR.article_id = ST.article_id
    group by SV.nom_service
         ,   AR.designation_article
         ,  ST.prix_unitaire
    order by SV.nom_service
    ,   AR.designation_article
         ');
    while ($donnees_lesbon_mod = $repponseart_bon_sorties->fetch())
      {
      $nom_service=$donnees_lesbon_mod['nom_service'];
      $designation_article=$donnees_lesbon_mod['designation_article'];
      $prix_unitaire=$donnees_lesbon_mod['prix_unitaire'];
    $qte=$donnees_lesbon_mod['qte'];
    $mt=$donnees_lesbon_mod['mt'];
                                                                                                                            
    ?>					  
    <tr>
    <td><input type="text" value="<?= $nom_service ?>" disabled="disabled" size="12"/></td>
    <td><input type="text" value="<?= $designation_article ?>" disabled="disabled" size="12"/></td>
    <td><input type="text" value="<?= $prix_unitaire ?>" disabled="disabled" size="12"/></td>
    <td><input type="text" value="<?= $qte ?>" disabled="disabled" size="12"/></td>
    <td><input type="text" value="<?= $mt ?>" disabled="disabled" size="12"/></td>
    </tr>
    <?php
    }
    ?>
    </table>

    Merci de vos solutions
    Images attachées Images attachées

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 857
    Points : 6 555
    Points
    6 555
    Par défaut
    En HTML pour qu'une cellule d'un tableau s'étende sur plusieurs lignes, ce n'est pas compliqué. Il suffit d'utiliser la propriété rowspan et de lui affecter le nombre de lignes nécessaire.

    Là où ça se corse, c'est que ton code réalise l'affichage des données provenant de ta requête au fur et à mesure, ligne par ligne. Or avec une telle manière de faire tu ne peux pas savoir à l'avance combien de lignes seront nécessaires pour un service donné.

    Pour t'en sortir, tu peux découpler la réception des données de son affichage. Pour faire ça, il suffit de stocker les données reçues dans un tableau, pour pouvoir ensuite compter tranquillement le nombre de lignes pour un service. Tu pourrais par exemple créer un tableau associatif dont les clefs seraient les noms des services et les valeurs seraient un tableau multidimensionnel contenant chaque ligne de données pour ce service:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $data = [
        'Consultations Externes' => [
            [ 'Ampoule néon', 1000, 40, 40000],
            [ 'Contact simple allumage', 1000, 10, 10000],
            // etc.
        ],
        'Laboratoire' => [
            [ 'Baguette argentin pqt', 1000, 30, 30000],
            // etc.
        ]
    ];
    Une fois que tu auras bâti un tel tableau, tu pourras boucler dessus pour réaliser l'affichage et tu obtiendras le nombre de lignes d'un service avec un simple count().

    C'est une manière de faire, il y en a d'autres:
    • mettre en attente l'affichage (en stockant dans une variable) et détecter lorsque le nom du service change pour le réaliser.
    • modifier ta requête SQL de manière à ce qu'elle renvoie également le nombre de lignes pour un service.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2015, 16h51
  2. [AC-2003] Formulaire Continu: visualisation de données issu d'une requête
    Par michaelkeul dans le forum IHM
    Réponses: 3
    Dernier message: 20/05/2010, 16h27
  3. [MySQL] Les données issues d'une requête SQL sont erronées
    Par edenreal dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 21/08/2009, 00h41
  4. Exporter les données issues d'une requête vers un doc Word
    Par sebpreps dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 23/05/2008, 17h00
  5. [FPDF] Mettre des données issues d'une requête dans l'entête
    Par zoom61 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/03/2007, 10h10

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