Mysql
 sql >> Datenbank >  >> RDS >> Mysql

php / SQL - drucke viele Wörter 4 mal zwischen jeweils 4 Namen mit vielen Bedingungen

Ich habe deinen vorherigen Beitrag und diesen hier gelesen. Wenn ich das verstehe, ist die grundlegende Sache, dass Sie Teams und Spieler haben und Daten in bestimmten standardisierten Gruppierungen (sozusagen) anzeigen möchten.

Nun, es gibt ein konstantes Datum, mit dem Sie immer die Größe des Teams vergleichen.

Was ich tun würde, ist eine Unterabfrage zu erstellen, die das Team mit einer Anzahl der Spieler gruppiert, und dies auf irgendeine Weise wie folgt zu verwenden:

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

Wenn Sie die Ergebnismenge in PHP ausgeben, können Sie einige Funktionen erstellen, wie zum Beispiel:

<?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.
}

?>

Verwenden der row_id Aus dem Ergebnissatz können Sie sehen, wann ein Team beginnt und endet.

Wenn es also die Zeilen ausspuckt, könnte es so aussehen:"

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

}

?>

Ich hoffe, ich habe Ihre Frage richtig verstanden. Ich hetze das schnell ab, aber ich dachte, es würde helfen!