xpfreund: Resultset erzeugen

Beitrag lesen

Hallo,

In der Spalte "event" steht der Titel.

an            datum         event
  ------------- ------------- ------------------
  1204          2007-04-30    Urlaub
  815           2007-05-02    Urlaub
  1             2007-05-02    Urlaub

Da Du ein DBMS benutzt, benötigst Du für die Abfrage keine Schleife in der API-Funktion (also in PHP). Die "Schleife" ist nämlich in der Datenbank schon eingetragen.

Du beschaffst Dir ein Array mit den relevanten Daten.
In einer extra-Spalte könntest Du z.B. direkt den Farbwert für die Anzeige vorbereiten lassen

select an, datum, event, if(event='Urlaub','#00FF00','#FFFFFF') as farbe
  from kalender  -- habe vergessen, wie die Tabelle heißt
  where (an = $an) and (datum between '2007-04-01' and '2007-04-30');

Das gesamte Resultset übernummst Du in ein Array. Das ist bei 28-31 Tagen ja nichts Schlimmes

Dieses Array übergibst Du dann an deine Kalender-Darstellungsfunktion, die den HTML-String für die Ausgabe fertig macht. In diesen String kannst Du fas Feld farbe direkt übernehmen und musst nicht in PHP noch rumhampeln.

Das ist ja schon ein guter Ansatz, aber die Farbe wird in einer Wenn-Dann-Anweisung festgelegt, d. h. if ($dm=Urlaub and $an=1), dann {
  $da = "<div style='font-weight:900; color:".$holiday_color.";'>".$d."&nbsp;</div>";} .
$dm = Tag und Monat der in der Spalte datum steht
$d ist übrigens die Zahl des Tages, also z. B. 29.
Wenn ich das nicht so mache, klappt die ganze Abfrage nicht.
Der Kalender wird durch eine Schleife erstellt.
Dabei wird die Schleife mit $d bis zum Ende des Monats je einmal durchlaufen.
In der Schleife wird zuerst abgefragt, ob es ein Wochenende ist.
Wenn ja wird eine Farbe festgelegt, wenn nicht kommt meine Urlaubsabfrage, wenn diese dann aber auch nicht zutrifft, wird die Farbe des normalen Tages gezeigt.

gruß aus Hosena