Li seu post anterior e este. Se eu entendi, o básico é que você tem equipes e jogadores e deseja exibir dados em certos agrupamentos padronizados (por assim dizer).
Bem, há um dado constante que você está sempre comparando com o qual é o tamanho da equipe.
O que eu faria é fazer uma subconsulta que agrupasse o time com uma contagem de jogadores e usaria isso de alguma forma da seguinte forma:
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
Ao ecoar o conjunto de resultados em PHP, você pode construir algumas funções como:
<?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.
}
?>
Usando o
row_id
a partir do conjunto de resultados, você pode ver quando uma equipe começa e termina. Então, quando está cuspindo as linhas, pode ser algo como:"
<?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']);
}
}
?>
Espero ter acertado sua pergunta. Estou fazendo isso rápido, mas achei que ajudaria!