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:
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
}
?> |