Прочетох предишната ти публикация и тази. Ако разбирам идеята, основното нещо е, че имате отбори и играчи и искате да показвате данни в определени стандартизирани групи (така да се каже).
Е, има постоянни данни, които винаги сравнявате, с които е размерът на екипа.
Това, което бих направил, е да направя подзаявка, която групира отбора с брой играчи и да използвам това по някакъв начин, както следва:
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
Когато повтаряте резултатния набор в PHP, можете да създадете функция като:
<?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.
}
?>
Използване на row_id
от набора от резултати можете да видите кога даден отбор започва и завършва.
Така че, когато изплюва редовете, може да бъде нещо като:"
<?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']);
}
}
?>
Надявам се, че съм разбрал въпроса ви правилно. Бързо го пускам, но мислех, че ще помогне!