PHP/MySQL Group By & mehrere Daten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP/MySQL Group By & mehrere Daten

    Guten Abend

    Ich bin mir nicht sicher ob ich dies eher hier reinschreiben muss oder bei SQL. Hoffe aber ihr könnt mir weiterhelfen:

    Ich habe folgende Tabelle filme:
    ID | ID2 | Film | Gruppe | Name

    Ich möchte nun alle Daten auslesen, bei dem das Feld ID2 den Wert 5 hat. Dies ist ja mit WHERE ID2 = '5'. Nun kann es sein, dass bei diesem Ergebnis folgendes rauskommt:
    1 | 5 | Film 1 | Gruppe 1 | Name 1
    2 | 5 | Film 2 | Gruppe 1 | Name 2
    3 | 5 | Film 3 | Gruppe 1 | Name 3
    4 | 5 | Film 4 | Gruppe 2 | Name 4
    5 | 5 | Film 5 | Gruppe 3 | Name 5

    Als ergebnis würde ich nun gerne folgendes haben:
    Gruppe 1:
    Film 1
    Film 2
    Film 3

    Gruppe 2:
    Film 4

    Gruppe 3
    Film 5
    Wenn ich nun eine einfache Abfrage mache bekommen ich logischerweise dies:
    Gruppe 1:
    Film 1

    Gruppe 1:
    Film 2

    Gruppe 1:
    Film 3

    Gruppe 2:
    Film 4

    Gruppe 3
    Film 5
    Wenn ich einfach ein GROUP BY Gruppe mache bekomme ich nur einen Film pro Gruppe.

    Ich könnte nun natürich eine Abfrage mit GROUP BY Gruppe machen, und in einer while schleife nochmals eien SQL Abfrage explizit auf die Gruppe und die ID2.

    Geht dies irgendwie auch mit nur einer SQL Abfrage?

    Vielen dank schon im Voraus für eure Hilfe.

    Gruss

    Koda

  • #2
    Hey,
    ich würde mal group by gruppe ,film versuchen

    Kommentar


    • #3
      Hi

      Vielen Dank für deine Antwort. Ich habe das gefühl, dass das ergebnis das selbe wie ohne group by ist.

      Jedoch könnte ich ja eigentlich in der while schleife einfach eine abfrage machen ob sich die Gruppe vom vorherigen Datensatz unterscheidet. Wenn nicht kann er den nächsten wert unterhalb einfügen. So geht es ohne zweite SQL Abfrage.

      Gruss

      Koda

      Kommentar


      • #4
        Hi Koda,

        ich hab' hier einen Codeschnipsel aus einem anderem Forum (ist nicht von mir!).
        PHP-Code:
        <?php
        $cj 
        "---";
        $abfrage "SELECT * FROM tabelle2 order by Jahr";
        $ergebnis mysql_query($abfrage);
        while(
        $row mysql_fetch_object($ergebnis)){
          
        $vorname=$row->Vorname;
          
        $nachname=$row->Nachname;
          
        ##### Gruppierung #####
          
        if ( $cj != $row->Jahr) {  
            
        $cj $row->Jahr;       
            echo 
        "<h3>$cj</h3>";      
          }
          
        ##### Ausgabe #####
          
        echo "$nachname$vorname<br>";
        }
        ?>
        Damit frage ich z.B. eine (fiktive) Mitarbeitertabelle ab und gruppiere die Mitarbeiter nach Eintrittsjahr. Ergebnis:

        2007
        Schmitt-Müller, Paul
        Schmidt, Monika
        Junker, Monika
        2010
        Schmitz, Heike
        Schmied, Horst
        2011
        Schimanski, Martina
        Schmidt, Hans

        Könnte das passen?

        Gruß
        Günni

        Kommentar


        • #5
          Jupp, ein Gruppenwechsel ist das, wonach du suchst.

          Kommentar

          Lädt...
          X