Ne pas l'affichage les doublons en php [Fermé]

Signaler
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
-
kakashi05
Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
-
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

1 réponse

Messages postés
186
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
12 août 2011
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