Jeg læste dit tidligere indlæg og dette. Hvis jeg får ideen, er det grundlæggende, at du har hold, og du har spillere, og du vil vise data i visse standardiserede grupperinger (så at sige).
Nå, der er et konstant datum, som du altid sammenligner med, hvilket er størrelsen på holdet.
Det, jeg ville gøre, er at lave en underforespørgsel, der grupperer holdet med et antal spillere og bruger dette på en eller anden måde som følger:
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
Når du gentager resultatsættet i PHP, kan du bygge nogle funktioner såsom:
<?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.
}
?>
Brug af row_id
fra resultatsættet kan du se, hvornår et hold starter og slutter.
Så når den spytter rækkerne ud, kan det være noget i stil med:"
<?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']);
}
}
?>
Jeg håber, jeg har fået rigtigt dit spørgsmål. Jeg skynder mig det her, men jeg troede, det ville hjælpe!