Przeczytałem twój poprzedni post i ten. Jeśli rozumiem, podstawową rzeczą jest to, że masz drużyny, masz graczy i chcesz wyświetlać dane w pewnych ustandaryzowanych grupach (że tak powiem).
Cóż, istnieje stały punkt odniesienia, do którego zawsze porównujesz wielkość zespołu.
To, co zrobiłbym, to utworzenie podzapytania, które grupuje zespół z liczbą graczy i używa tego w następujący sposób:
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
Podczas wywoływania zestawu wyników w PHP możesz zbudować kilka funkcji, takich jak:
<?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.
}
?>
Korzystanie z row_id
z zestawu wyników możesz zobaczyć, kiedy drużyna zaczyna i kończy.
Więc kiedy wypluwa wiersze, może to wyglądać tak:"
<?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']);
}
}
?>
Mam nadzieję, że dobrze odpowiedziałem na twoje pytanie. Szybko to rzucam, ale pomyślałem, że to pomoże!