J'ai lu ton message précédent et celui-ci. Si je comprends bien, la chose de base est que vous avez des équipes et des joueurs et que vous souhaitez afficher les données dans certains groupes standardisés (pour ainsi dire).
Eh bien, il y a une donnée constante que vous comparez toujours à laquelle est la taille de l'équipe.
Ce que je ferais, c'est créer une sous-requête qui regroupe l'équipe avec un nombre de joueurs et l'utiliser d'une manière comme suit :
select t.*
, x.total_players
-- , row_number() over(order by t.team_name) row_id
from team_table t
join (
select team_id
, count(1) total_playerss
from team_table
group by team_id
) x on x.team_id = t.team_id
order by t.team_name
Lors de l'écho du jeu de résultats en PHP, vous pouvez créer des fonctions telles que :
<?php
function add_some_word($playerCount) {
if ($playerCount >4 && $playerCount <= 8) {
echo '*** SOME WORD***';
echo '*** SOME WORD***';
echo '*** SOME WORD***';
}
else if ($playerCount >4 && $playerCount <= 8) {
echo '*** SOME WORD***';
echo '*** SOME WORD***';
}
// etc.
}
?>
Utilisation du row_id
à partir de l'ensemble de résultats, vous pouvez voir quand une équipe commence et se termine.
Ainsi, lorsqu'il recrache les lignes, cela pourrait ressembler à : "
<?php
$currentTeamName = "";
while ($row = pg_fetch_array($result,null,PGSQL_ASSOC)) {
// echo data you would normally send out
if ($currentTeamName != $row['team_name']) {
add_some_word($row['total_players']);
}
}
?>
J'espère avoir bien compris votre question. Je me dépêche de faire ça rapidement mais j'ai pensé que ça aiderait !