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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
| <?php
// ------------
// Requête
$resultat = $base->query('SELECT
ame.`ID_membre`,
ame.`ID_equipe`,
ame.`ID_statut`,
ame.`pourcentage`,
f.`ID_federation`,
f.`nom_federation`,
e.`ID_equipe`,
s.`ID_statut`,
m.`ID_membre`,
m.`nom`,
m.`prenom`
FROM
AS_MEMBRE_EQUIPE ame
INNER JOIN STATUT s ON s.`ID_statut` = ame.`ID_statut`
INNER JOIN MEMBRE m ON ame.`ID_membre` = m.`ID_membre`
INNER JOIN EQUIPE e ON e.`ID_equipe` = ame.`ID_equipe`
INNER JOIN FEDERATION f ON f.`ID_federation` = e.`ID_federation`
ORDER BY f.`nom_federation` ASC
') or die($mysqli->error.__LINE__);
// ------------
$donneesAll = $resultat->fetchAll();
// ------------
// 3A - Listes des membres, par Fédération
$ID_federation_current = '';
foreach( $donneesAll as $donnees )
{
// On affiche le NOM de la fédération (UNE seule fois)
$ID_federation = $donnees['ID_federation'];
if( $ID_federation != $ID_federation_current )
{
$ID_federation_current = $ID_federation;
$nom_federation = htmlspecialchars($donnees['nom_federation']);
echo '<h4>'.$nom_federation.'</h4>';
}
// on affiche le membre
$ID_membre = $donnees['ID_membre'];
$NOM_membre = htmlspecialchars($donnees['nom'].' '.$donnees['prenom']);
echo $ID_membre.' : '.$NOM_membre.'<br/>';
}
// ------------
// 3B : nombre total de membres, par Fédération
$mbre_par_fede_array = []; // array
foreach( $donneesAll as $donnees )
{
// On ajoute l'ID_membre dans l'array, dont l'INDICE est nom_federation
$mbre_par_fede_array[$donnees['nom_federation']][] = $donnees['ID_membre'];
}
// ------------
// 3C : pour chaque Fédération, nombre de membres pratiquants d AUTRES sports
$mbre_autre_sport_array = [];
foreach( $mbre_par_fede_array as $nom_fede => $ids_mbre_array ) // pour chaque fédé
{
foreach( $mbre_par_fede_array as $nom_fede2 => $ids_mbre_array2 ) // pour chaque fédé...
{
if( $nom_fede != $nom_fede2 ) // ...sauf la fédé en cours
{
// on COMPTE les ID_membre, PRESENTS dans les 2 array
$count = count(array_intersect($ids_mbre_array, $ids_mbre_array2));
if( !empty($count) ) // si pas 0
{
$mbre_autre_sport_array[$nom_fede][$nom_fede2] = $count; // on enregistre
}
}
}
}
// ------------
// Affichage :
foreach( $mbre_par_fede_array as $nom_fede => $ids_mbre_array )
{
// 3B : nombre total de membres, par Fédération
echo '<h4>'.htmlspecialchars($nom_fede).' : '.count($ids_mbre_array).' membres</h4>';
// 3C : pour chaque Fédération, nombre de membres pratiquants d AUTRES sports
if( !empty($mbre_autre_sport_array[$nom_fede]) )
{
$autres = [];
foreach( $mbre_autre_sport_array[$nom_fede] as $nom_fede2 => $count2 )
{
$autres[] = '<b>'.$count2.'</b> ('.$nom_fede2.')'; // on affiche
}
echo '<p>dont pratiquants d\'autres sports :</p>';
echo '<ul><li>'.implode('</li><li>',$autres).'</li></ul>';
}
}
// ------------ |