Kalma
Erfahrenes Mitglied
Hey,
ich habe mir ein Kleines Kalenderscript zusammengebastelt, was den aktuellen Tag, das Wochenende und aus der DB ausgelesene Termine einfärbt.
Leider markiert er aber immer nur einen Termin.
Was muss ich machen?
Die werte in meiner DB sehen so aus:
Beispiel:
Tag: 03
Monat: 11
Jahr: 2006
ICh muss doch die Werte inner Schleife ausgeben lassen oder? Also die Termine.
Aber wie?
David
ich habe mir ein Kleines Kalenderscript zusammengebastelt, was den aktuellen Tag, das Wochenende und aus der DB ausgelesene Termine einfärbt.
Leider markiert er aber immer nur einen Termin.
Was muss ich machen?
PHP:
<?php
$zeit = time();
$jahr = date("Y", $zeit); // ermitteln des Jahres
$mon = date("n", $zeit); // ermitteln des Monats
$akt = date("d", $zeit); // ermitteln des aktuellen Tages
$last = date("t", mktime(0, 0, 0, $mon, 1, $jahr)); // ermitteln des letzten Tages des Monats
$gig = mysql_query("SELECT * FROM gigs WHERE `monat`=$mon ORDER BY id DESC");
$g = mysql_fetch_array($gig);
// Arrays für Monate und Wochentage
$mo = Array("",
"Januar",
"Februar",
"März",
"April",
"Mai",
"Juni",
"Juli",
"August",
"September",
"Oktober",
"November",
"Dezember");
$wd = Array("So",
"Mo",
"Di",
"Mi",
"Do",
"Fr",
"Sa",
"So");
// ermitteln des Wochentages für den ersten Tages des Monats
$first_wd = date("w", mktime(0, 0, 0, $mon, 1, $jahr));
if ($first_wd == 0) $first_wd=7; // Korrektur für den Sonntag
//erstellung der tabelle
echo "<p />";
echo "<table border=\"0\" class=\"news_h5\">";
echo "<tr>";
//aktuellen monats-namen ausgeben
echo "<td align=\"center\" colspan=\"7\"><u><b>".$mo[$mon]." $jahr</b></u></td>";
echo "</tr>";
echo "<tr>";
echo "<td><b>Mo</b></td>";
echo "<td><b>Di</b></td>";
echo "<td><b>Mi</b></td>";
echo "<td><b>Do</b></td>";
echo "<td><b>Fr</b></td>";
echo "<td><b>Sa</b></td>";
echo "<td><b>So</b></td>";
echo "</tr>";
// Leere Zellen ausgeben, bis zum ersten Tag des Monats
echo "<tr>";
for ($j = 1; $j < $first_wd; $j++)
{
echo "<td> ";
}
for ($i=1; $i<=$last; $i++)
{
// ermitteln des Wochentages
$x = $wd[date("w", mktime(0,0,0,$mon,$i,$jahr))];
// definition des Standard-Style
$bo="d0";
$link = $i;
// Einfärbung des Sonntages
if (($x == "So") OR ($x == "Sa"))
{
$bo = "gig_legend_sun";
$link = $i;
}
// Einfärbung des aktuellen Tages
if ($i == $akt)
{
$bo = "gig_legend_day";
$link = $i;
}
//einfärbung des monats
//gig tag rausholen
$gig_day = $g['tag'];
if ($i == $gig_day)
{
$bo = "gig_legend_gig";
$link = "<a href=\"?section=giglesen&id=".$g['id']."\" class=\"kalender_link\" title=\"Details: ".$g['titel']."\">$i</a>";
}
echo "<td class=\"".$bo."\" align=\"center\">$link</td>";
if ($x == "So")
echo "</tr>\n<tr>"; // Am Sonntag endet die jeweilige Zeile
}
echo "</tr></table>";
echo "<p />";
?>
Die werte in meiner DB sehen so aus:
Beispiel:
Tag: 03
Monat: 11
Jahr: 2006
ICh muss doch die Werte inner Schleife ausgeben lassen oder? Also die Termine.
Aber wie?
David