Leí tu mensaje anterior y este. Si entiendo la idea, lo básico es que tienes equipos y jugadores y quieres mostrar datos en ciertos grupos estandarizados (por así decirlo).
Bueno, hay un dato constante que siempre estás comparando con el cual es el tamaño del equipo.
Lo que haría es hacer una subconsulta que agrupe al equipo con un conteo de jugadores y usar esto de alguna manera de la siguiente manera:
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
Al hacer eco del conjunto de resultados en PHP, puede crear alguna función como:
<?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.
}
?>
Usando el row_id
a partir del conjunto de resultados, puede ver cuándo comienza y termina un equipo.
Entonces, cuando está escupiendo las filas, podría ser algo como:"
<?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']);
}
}
?>
Espero haber acertado con tu pregunta. ¡Estoy corriendo rápido, pero pensé que ayudaría!