Nach Datum gruppieren

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

  • Nach Datum gruppieren

    Hallo...

    ich bin noch ein ziemlicher Newbie auf diesem Gebiet und würde gerne wissen, wie die Daten meiner Newstabelle nach Monaten gruppieren kann. In der Tabelle gibt es ein Feld in dem das Datum im Format "0000-00-00" gespeichert ist.

    Danke für eure Hilfe
    Mfg,

    Schoppy

  • #2
    Gruppieren ... oder Sortieren ... ??

    Gruppieren: GROUP BY datumsfeld

    Sortieren: ORDER BY datumsfeld

    Gruppieren aggregiert verschiedene Tupel einer Tabelle zu Einem ... dabei können dann Aggregat-Funktionen SUM(), MAX(), MIN() ... verwendet werden und die Daten zusammenzufassen ... .
    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
      0000-00-00 entspricht der Null im ISO-Format für Datums- und Zeitangaben (ISO 8601).
      Dies Format hat den Vorteil, dass der Vergleich und das Sortieren verschiedener Angaben im gleichen Sub-Format auf einen einfachen String-Vergleich reduziert wird - wenn man mal von den Möglichkeiten absieht, Angaben aus verschiedenen Zeitzonen codieren zu können.

      Übrigens ist auch die Darstellung von Timestamps in mySQL konform zu ISO 8601.
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        Danke...

        aber vielleicht habe ich mich ja auch falsch ausgedrückt, ich möchte z.B alle Meldungen aus dem Monat '07' heraus filtern und ausgeben...danach alles aus dem Monat '08' usw...wäre nett, wenn iihr mir ein Quellcodebeispiel posten könntet.
        Mfg,

        Schoppy

        Kommentar


        • #5
          $stat="
          SELECT MONTH(`date`) AS monat, meldung
          FROM ids_news
          WHERE YEAR(`date`)=2002
          ORDER BY monat
          ";


          Du solltest Dann in Deinem Script auf den Monatswechsel prüfen

          PHP-Code:
          if ( $res=mysql_query($stat) ) {
              
          $curmonth=0;
              while ( 
          $obj=mysql_query_object($res) ) {
                  if ( 
          $obj->monat!=$curmonth ) {
                      echo 
          "JETZT NEUER MONAT<br />\n";
                      
          $curmonth=$obj->monat;
                  }
                  echo 
          nl2br(htmlspecialchars($obj->meldung))."<br />\n";
              }
              
          mysql_free_result($res);
          } else die(
          mysql_error()); 
          Zuletzt geändert von goth; 17.07.2002, 00:20.
          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


          • #6
            Hmm...

            ich bekomme ich immer einen Parse-Error...

            Hier sind noch mal meine genauen Daten:

            Tabellenname: 'ids_news'

            Spaltenname in der das Datum steht: 'date'


            Ich sehe mich schon kurz vor dem Ziel
            Mfg,

            Schoppy

            Kommentar


            • #7

              Hab's oben entsprechende geändert ... parse error ist allerdings dann ein php-Problem ... hinter mysql_free_result($res) fehlte ein Semikolon
              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


              • #8
                So...

                ich habe das jetzt mal so realisiert
                PHP-Code:
                $daten MySQL_QUERY("select * from $newstable where month(datum) = 7"); 
                Und nun möchte ich eine Ausgabe nach folgendem Stil:

                Januar

                1.Meldung
                2.Meldung
                3.usw

                Februar

                1.Meldung
                2.Meldung
                3.usw

                Ich habe das ganze jetzt mal so versucht:

                PHP-Code:
                $daten MySQL_QUERY("select headline,month(datum) as monat from $newstable GROUP by monat DESC");

                while (
                $ausgabe mysql_fetch_array($daten)) {


                echo 
                $ausgabe[1]."<br>";} 

                Aber dann bekomme ich ja nur die Monate ja nicht als ausgeschriebenes Wort, sondern als Zahl. Wie wandle ich das jetzt wieder um ?...könnte da nochmals eure Hilfe gebrauchen (Auch wenn ich bestimmt nerve und gar nix kapiere
                Zuletzt geändert von Schoppy; 17.07.2002, 13:05.
                Mfg,

                Schoppy

                Kommentar

                Lädt...
                X