Gruppierung nach Monat

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

  • Gruppierung nach Monat

    Hallo!

    Folgendes Problem: Eine Tabelle mit Datum soll ausgegeben werden gruppiert nach Monat

    Januar
    *Text 1
    *Text 2
    *Text 3

    Februar
    *Text 4
    *Text 5


    Die Abfrage müßte ja etwa so aussehen:

    select MONTH(Datum) as mnt, Text from Tabelle group by
    mnt;

    Wie erzeuge ich nun die fällige Tabelle? Mit zwei Schleifen?
    Grüße
    Petra

    _____________________________
    Urlaub nur hier:
    http://www.landhaus-drosselweg.de

  • #2
    Hallo,

    GROUP BY macht in diesem Falle wenig Sinn.
    Ich würd's mit

    select MONTH(Datum) as mnt, Text from Tabelle order by mnt;

    probieren und dann vom Prinzip her sowas machen;

    PHP-Code:
    $monthnames=array("Januar""Februar", ..., "Dezember");
    $lastmonth="";
    if ( 
    $res=mysql_query("select MONTH(Datum) as mnt, Text from Tabelle order by mnt") ) {
      echo 
    "<table>\n";
      while ( 
    $row=mysql_fetch_array($resMYSQL_ASSOC) ) {
        if ( 
    $lastmonth!=$row["mnt"] ) {
          echo 
    "<tr>\n";
          echo 
    "<th>".$monthnames[$row["mnt"]]."</th>\n";
          echo 
    "</tr>\n";
          
    $lastmonth=$row["mnt"];
        }
        echo 
    "<tr>\n";
        echo 
    "<td>$row[Text]</td>\n";
        echo 
    "</tr>\n";
      }
      echo 
    "</table>\n";
      
    mysql_free_result($res);

    Also ... wie gesagt ... vom Prinzip her sollte es funzen ...
    Zuletzt geändert von goth; 12.04.2002, 15:49.
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Ähm, ich denke so geht es eben nicht oder? Bekomme ich dann nicht

      Januar
      Text 1
      Januar
      Text 2
      Januar
      Text 3...

      Er durchläuft ja so jedesmal die Schleife und erzeugt eine neue Tabelle mit th und td...
      Grüße
      Petra

      _____________________________
      Urlaub nur hier:
      http://www.landhaus-drosselweg.de

      Kommentar


      • #4
        Klar wird jeder Text in einer eigenen Zelle dargestellt.
        Der Monatsname wird nur einmalig angezeigt, da

        PHP-Code:
        if ( $lastmonth!=$row["mnt"] ) { 
        die Zeile jeweils nur einmal ausgibt.

        Allerdings fehlte in dieser Bedingung noch die Zuweisung:

        PHP-Code:
        $lastmonth=$row["mnt"]; 
        Die ich jetzt mal ergänzt habe
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar

        Lädt...
        X