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
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 ... .
0000-00-00 entspricht der Null im ISO-Format für Datums- und Zeitangaben (ISO 8601 (http://home.t-online.de/home/PeterJHaas/ISO8601.htm#Datum)).
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. :teach:
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.
$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
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());
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 ;)
Hab's oben entsprechende geändert ... parse error ist allerdings dann ein php-Problem ... hinter mysql_free_result($res) fehlte ein Semikolon
So...
ich habe das jetzt mal so realisiert$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:
$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