michel gelin: Agenda Script mit MySQL

Hallo zusammen,

ich bin auf der Suche nach einem Script mit welchem ich eine Agenda darstellen kann. Das Script soll eine Liste in folgender Art erzeugen:

Januar 2004

Mo, 01.01.2004, "Eventname", Eventbeschreibung, Eventlink
Mo, 08.01.2004, "Eventname", Eventbeschreibung, Eventlink
Di, 09.01.2004, "Eventname", Eventbeschreibung, Eventlink
Fr, 13.01.2004, "Eventname", Eventbeschreibung, Eventlink
Sa, 28.01.2004, "Eventname", Eventbeschreibung, Eventlink

Februar 2004

Mo, 01.02.2004, "Eventname", Eventbeschreibung, Eventlink
Mo, 08.02.2004, "Eventname", Eventbeschreibung, Eventlink
Di, 09.02.2004, "Eventname", Eventbeschreibung, Eventlink
Fr, 13.02.2004, "Eventname", Eventbeschreibung, Eventlink
Sa, 28.02.2004, "Eventname", Eventbeschreibung, Eventlink

etc.

D.h. es werden einfach Daten aus der Datenbank nach Monat aufgelistet und zwar nur solche an welchen was stattfindet.
Natürlich sollen vergangene Daten nicht gezeigt werden ;-)

Ich habe nun diverse Kalender und Agenda Scripts gefunden, die stellen aber alle komplette Agenden dar, so wie man es sich halt von der Papier-Version gewöhnt ist.

Hat vielleicht jemand von Euch eine Idee wo ich so ein script noch finden könnte resp. hat jemand von Euch schon ein paar Zeilen dazu selber verfasst?

Ansonsten beginne ich das von Null an zusammenzubasteln.

Gruss,
Michel

  1. yo,

    ein script habe ich nun nicht parat, aber vieleicht ein paar ideen für dich. ich sehe zwei möglichkeiten, wie du das problem lösen kannst.

    zum einen kannst du eine geeignete sql abfrage erstellen, die dir gewünschten datensätze in dieser form erzeugt. das wird unter mysql schiewrig sein, zumal nützliche funktionen wie UNION dort nicht vorhanden sind. dort wird es wohl auf mehrere abfragen herauskommen, wenn du es nur mit abfragen lösen willst.

    die andere möglichkeit ist es, erst einmal alle datensätze auszulesen, dessen datum größer/gleich ist als das aktuelle datum, ebenfalls sortiert nach dem datum. in etwas so:

    SELECT date_format(datums_spalte, '%M %Y') AS Monat_Jahr, date_format(datums_spalte, '%W, %d.%m.%Y') AS Datum, eventname, eventbeschreibung, eventlink
    FROM tabellen_name
    WHERE datum >= NOW();

    den rest musst du nun mit php erledigen, sprich die erste spalte (Monat_Jahr) der datensätze ist entscheidend, ob es sich um einen neuen monat handelt oder nicht. das sollte nicht weiter schwierig sein, einfach den alten wert in einer variablen speichern und über prüfen, ob sich dieser beim auslesen eines neuen datensatzes ändert. tut er es nicht, gehört er noch zum alten monat, ist er anderes wird ein neuer monat angefangen.

    Ilja

    1. yo,

      da habe ich doch glatt das ORDER BY vergessen....

      SELECT date_format(datums_spalte, '%M %Y') AS Monat_Jahr, date_format(datums_spalte, '%W, %d.%m.%Y') AS Datum, eventname, eventbeschreibung, eventlink
      FROM tabellen_name
      WHERE datum >= NOW()
      ORDER BY datums_spalte;

      Ilja