Ho letto il tuo post precedente e questo. Se ho un'idea, la cosa fondamentale è che hai squadre e giocatori e vuoi visualizzare i dati in determinati raggruppamenti standardizzati (per così dire).
Bene, c'è un dato costante che stai sempre confrontando con la dimensione della squadra.
Quello che farei è creare una sottoquery che raggruppi la squadra con un conteggio dei giocatori e usarlo in qualche modo come segue:
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
Quando si esegue l'eco del set di risultati in PHP, è possibile creare alcune funzioni come:
<?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 il row_id
dal set di risultati, puoi vedere quando una squadra inizia e finisce.
Quindi, quando sputa le righe, potrebbe essere qualcosa del tipo:"
<?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']);
}
}
?>
Spero di aver capito bene la tua domanda. Sto scappando velocemente ma ho pensato che sarebbe stato d'aiuto!