Jag läste ditt förra inlägg och det här. Om jag förstår idén är det grundläggande att du har lag och du har spelare och du vill visa data i vissa standardiserade grupperingar (så att säga).
Tja, det finns ett konstant datum som du alltid jämför med vilket är storleken på laget.
Vad jag skulle göra är att göra en underfråga som grupperar laget med ett antal spelare och använder detta på något sätt enligt följande:
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 upprepar resultatuppsättningen i PHP kan du bygga någon funktion 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.
}
?>
Använda row_id
från resultatuppsättningen kan du se när ett lag startar och slutar.
Så när den spottar ut raderna kan det vara något 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']);
}
}
?>
Jag hoppas att jag fick rätt på din fråga. Jag kör på det här snabbt men jag trodde att det skulle hjälpa!