Ne pas l'affichage les doublons en php

kakashi05 Messages postés 195 Statut Membre -  
kakashi05 Messages postés 195 Statut Membre -
Bonjour je viens vers vous car j'ai un problème
j'ai une requete qui m'affiche la liste des demandes traitées et la charge par site, sachant que j'ai plusieurs site je vous donne un exemple sur deux sites
Affichage actuel

Demande|libelle|Site|Charge Alf|Charge CSA|
123| Dev| ALF| 0,1| 0|
123| Dev| CSA| 0 | 0,2|

j'aimerai avoir au final
Demande|libelle|Charge Alf|Charge CSA|
123| Dev| 0,1 | 0,2|

Mon problème se trouve au niveau de l'affichage j'aimerai faire pouvoir éliminer les doublons dans mon code php.
En faisant un DISTINCT dans ma requete je vais prendre la deuxieme ligne.

J'ai essayé des fonctions comme array_unique, et aussi array_sum mais la colonne reste vide

je vous montre mon code en esperant que vous pourrez me mettre sur une piste
$res=$bdd->query($sql);
$nbr=$bdd->num_rows($res);
if ( $nbr > 0 ) {

//entete du tableau
echo '<br/><br/><table border="1">';
echo '<tr>';
echo '<tr>';
echo '<th>Demande</th>';
echo '<th>Libelle </th>';
echo '<th>Site</th>';
echo '<th>Charge Alf</th>';
echo '<th>Charge CSA</th>';
echo '</tr>';

while ($row=$bdd->fetch_array($res)) {
	echo '<tr>';
        echo '<td>'.la_case($row['DemandeClient']).'</td>';
        echo '<td>'.la_case(extract_lib($row['Libelle'])).'</td>';
        echo '<td>'.la_case($row['Site']).'</td>';

if ($row['Site']=='ALF') {
        echo '<td>'.la_case(round($row['Charge'],2),TRUE).'</td>';
        }
        else {
        echo  '<td>'.la_case('0').'</td>';
         }

 if ($row['Site']=='CSA') {
         echo '<td>'.la_case(round($row['Charge'],2),TRUE).'</td>';
        }
         else {
            echo  '<td>'.la_case('0').'</td>';
        }
}

echo '</table>';
	}
            
	$i++;


Si quelqu'un a une idée je suis preneur. Merci d'avance
A voir également:

1 réponse

kakashi05 Messages postés 195 Statut Membre 32
 
Bonjour j'ai finalement trouvé la solution
ce que je voulais faire n'était pas possible avec une seule requête.
J'ai du le faire en 3 requêtes

une première requête pour retrouver la demande en appliquant un DISTINCT pour éviter tout les doublons.
La seconde à partir de la demander qui me permettra de retrouver toute les charges lié à cette demande et par site ou j'effectue ma somme

Puis une troisième et dernière requête pour afficher la demande et la charge de chaque site et le tout sur une seule ligne
0