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 :

Affichage résultat requête dans un tableau [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 181
    Points : 47
    Points
    47
    Par défaut Affichage résultat requête dans un tableau
    Bonjour,

    voilà j'ai un petit souci. Je réalise des requêtes dans une bdd et je souhaite l'afficher sous forme de tableau. Le problème c'est que sur ma première colonne j'utilise un rowspan du nombre d'éléments contenus dans la deuxième colonne appartenant à l'élément de la première. Jusque là tout va bien, le souci arrive pour le reste. Cette méthode fait qu'une de mes données de la première colonne est oublié et je ne vois pas comment modifier mon algo pour pouvoir tout récupérer et l'afficher à souhait.
    Voilà mon code :
    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
    <?php
    $k=0;
    while($donnees=$req->fetch())
    {
    ?>
                            <tr>
    <?php
    $reqt=$bdd->prepare('SELECT COUNT(DISTINCT(NomAct)) AS counter
        FROM test
        WHERE NomServ = :Nomserv');
    $reqt->execute(array('Nomserv' => $donnees['NomServ']));
    $cont=$reqt->fetch();
    $taille=$cont['counter'];
    if($k<=$taille) {
    ?>          
                                <td rowspan=<?php echo $taille;?>>
    <?php
    echo htmlspecialchars($donnees['NomServ']);
    $k = $k + 1;
    }
    else $k=0;
    ?>
                                </td>
                                <td>
    <?php
    echo htmlspecialchars($donnees['NomAct']);
    ?>
                                </td>
                                <td>
    <?php
    echo htmlspecialchars($donnees['SOM'].' €');
    ?>
                                </td>
                                <td>
    <?php
    $prctg=$bdd->prepare('SELECT ROUND(SUM(CA),2) AS SOM
        FROM test
        WHERE NomServ =:Nomserv
        ORDER BY NomServ');
    $prctg->execute(array('Nomserv' => $donnees['NomServ']));
    $pctg=$prctg->fetch();
    $prctgserv = round(100*$donnees['SOM']/$pctg['SOM'],2);
    echo htmlspecialchars($prctgserv.' %');                
    ?>
                                </td>
                                <td>
    <?php
    $evol=$bdd->prepare('SELECT Montant FROM objectif WHERE NomServ = :Nomserv');
    $evol->execute(array('Nomserv' => $donnees['NomServ'],
    ));
    $don=$evol->fetch();
    if($don['Montant'] == NULL)
        echo htmlspecialchars('Non rempli') ;
    else
    {
        $porcentgevol = round(100*$donnees['SOM']/$don['Montant'],2);
        echo htmlspecialchars($porcentgevol." %");
    }
    ?>
                                </td>
                            </tr>
    <?php
    }
    ?>

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 181
    Points : 47
    Points
    47
    Par défaut
    Bon j'ai réussi à trouver la solution mais j'ai gardé mes 3 requêtes.
    Je joins le code si jamais ça peux aider quelqu'un :
    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
     
    <?php
        $k=0;
    $servprec=null;
        while($donnees=$req->fetch())
        {
    ?>
        <tr>
        <?php
     
        $reqt=$bdd->prepare('SELECT COUNT(DISTINCT(NomAct)) AS counter
                     FROM test
                     WHERE NomServ = :Nomserv');
            $reqt->execute(array('Nomserv' => $donnees['NomServ']));
                          $cont=$reqt->fetch();
                          $taille=$cont['counter']; echo $taille;
                          if($k<=$taille || $servprec != $donnees['NomServ'])                 {
                            ?>         
            <td rowspan=<?php echo $taille;?>>
    <?php
            echo htmlspecialchars($donnees['NomServ']);
            $k = $k + 1;
            $servprec=$donnees['NomServ'];
     
            }
            else $k=0;
    ?>
            </td>
            <td>
    <?php
            echo htmlspecialchars($donnees['NomAct']);
    ?>
            </td>
            <td>
    <?php
            echo htmlspecialchars($donnees['SOM'].' €');
    ?>
            </td>
            <td>
    <?php
            $prctg=$bdd->prepare('SELECT ROUND(SUM(CA),2) AS SOM
                        FROM test
                        WHERE NomServ =:Nomserv
                        ORDER BY NomServ');
            $prctg->execute(array('Nomserv' => $donnees['NomServ']));
            $pctg=$prctg->fetch();
            $prctgserv = round(100*$donnees['SOM']/$pctg['SOM'],2);
                echo htmlspecialchars($prctgserv.' %');               
    ?>
            </td>
            <td>
    <?php
            $evol=$bdd->prepare('SELECT Montant FROM objectif WHERE NomServ = :Nomserv');
            $evol->execute(array('Nomserv' => $donnees['NomServ']));
            $don=$evol->fetch();
            if($don['Montant'] == NULL)
                echo htmlspecialchars('Non rempli') ;
            else
            {
                $porcentgevol = round(100*$donnees['SOM']/$don['Montant'],2);
                echo htmlspecialchars($porcentgevol." %");
            }
    ?>
            </td>
        </tr>
    <?php
        }
    ?>

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

Discussions similaires

  1. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  2. [MySQL] Résultat requête dans un tableau en une seule instruction
    Par senacle dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/02/2010, 12h56
  3. [SQL] Affichage résultat requête dans un tableau, bouton affichage page
    Par megapacman dans le forum PHP & Base de données
    Réponses: 35
    Dernier message: 18/05/2006, 16h42
  4. [VB]résultat requête dans un tableau
    Par blaiso dans le forum VB 6 et antérieur
    Réponses: 29
    Dernier message: 30/01/2006, 16h26

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