Mysql
 sql >> Database >  >> RDS >> Mysql

php / SQL - stampa molte parole 4 volte tra ogni 4 nomi con molte condizioni

Ho letto il tuo post precedente e questo. Se ho un'idea, la cosa fondamentale è che hai squadre e giocatori e vuoi visualizzare i dati in determinati raggruppamenti standardizzati (per così dire).

Bene, c'è un dato costante che stai sempre confrontando con la dimensione della squadra.

Quello che farei è creare una sottoquery che raggruppi la squadra con un conteggio dei giocatori e usarlo in qualche modo come segue:

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

Quando si esegue l'eco del set di risultati in PHP, è possibile creare alcune funzioni come:

<?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 il row_id dal set di risultati, puoi vedere quando una squadra inizia e finisce.

Quindi, quando sputa le righe, potrebbe essere qualcosa del tipo:"

<?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']);
}

}

?>

Spero di aver capito bene la tua domanda. Sto scappando velocemente ma ho pensato che sarebbe stato d'aiuto!