Četl jsem tvůj předchozí příspěvek a tento. Pokud mám představu, základní věc je, že máte týmy a hráče a chcete zobrazovat data v určitých standardizovaných seskupení (takříkajíc).
No, existuje konstantní datum, se kterým se vždy srovnáváte, což je velikost týmu.
Udělal bych poddotaz, který seskupí tým podle počtu hráčů a použije to nějakým způsobem následovně:
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
Při opakování sady výsledků v PHP můžete vytvořit nějakou funkci, například:
<?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.
}
?>
Pomocí row_id
ze sady výsledků můžete vidět, kdy tým začíná a kdy končí.
Takže když to vyplivuje řádky, může to být něco jako:"
<?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']);
}
}
?>
Doufám, že jsem vaši otázku pochopil správně. Rychle to zahazuji, ale myslel jsem, že to pomůže!