PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Events in Monaten unterteilt ausgeben (http://www.selfphp.de/forum/showthread.php?t=15436)

fips 04.12.2006 16:47:00

Events in Monaten unterteilt ausgeben
 
Hallo!

Ich habe einen MYSQL Table in dem Events erfasst wurden, jedes Event
hat ein Startdate und ein enddate.

Möchte ich auf einer Seite die Events als Liste in Monate unterteilt ausgeben.

D.h. ich habe eine Zeitspanne von 1.1.2007 - 31.12.2007

Wie kann ich nun mit einer Schleife die Monate ausgeben?

Denn kann kann ich mir wiederrum an jedem ersten und letzten den Timestamp
berechnen und ne SQL Select schreiben.

Mir fehlt im Moment nur die Idee wie ich zu den Monaten in dem Jahr kommen könnte.

Gruß

BenniG. 04.12.2006 17:24:18

AW: Events in Monaten unterteilt ausgeben
 
Für jeden Monat eine Query abzusetzen macht wenig Sinn (hört sich so an als ob du das vorhast)

Machs so:
Code:

SELECT *, MONTH(datum) AS eventMonat
FROM
  events
WHERE
  datum BETWEEN STR_TO_DATE('01.01.2007','%d.%m.%Y) and STR_TO_DATE('31.12.2007','%d.%m.%Y)
ORDER BY
  datum

Statt den fixen Daten benutzt du halt variablen..

So, damit hast du alle Events im Gesamtintervall, beim Auslesen machst du dann:
PHP-Code:

$monat=0;
while(
$row mysql_fetch_assoc($result)) {
   if (
$monat!=$row['eventMonat'] ) echo "Neuer Monat: " $row['eventMonat'];
   echo 
$row['sonstigesVomEvent'];
   
$monat=$row['eventMonat'];


Die Ausgabe machst du noch schön tabellarisch, schreibst dir noch eine kleine Funktion um die Zahl in den deutschen Monatsnamen umzuwandeln und schon bist Du fertig ;)

fips 04.12.2006 19:24:01

AW: Events in Monaten unterteilt ausgeben
 
Hi!

Danke für deinen Tipp.

Was ich nicht ganz verstehe:

Woher weiss PHP wann das nächste Monat in der Zeitspanne beginnt?

Gruß

Philipp

BenniG. 04.12.2006 19:27:55

AW: Events in Monaten unterteilt ausgeben
 
Du liest alle Events aus, die dann evtl unterschiedliche Monate haben. In der Schleife wo die Datenbank ausgelesen wird wird dann gecheckt ob zwischen dem letzten und dem aktuellen Datensatz ein "Wechsel" im Monat stattfindet..
if ($monat!=$row['eventMonat'] ) echo "Neuer Monat: " . $row['eventMonat'];


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:50:20 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.