ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
665
665
EMPFEHLEN
-
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:PHP-Code:<?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 />";
?>
Beispiel:
Tag: 03
Monat: 11
Jahr: 2006
ICh muss doch die Werte inner Schleife ausgeben lassen oder? Also die Termine.
Aber wie?
David
-
04.11.06 09:34 #2
- Registriert seit
- Oct 2004
- Ort
- Leipzig
- Beiträge
- 589
Das lässt sich leicht erklären. der Befehl mysql_fetch_array() liest eine Zeile aus der Datenbank in ein Array ein.
Somit hast auch immer nur das erste Datum. Du müsstest das quasi alles nur in eine while Schleife verpacken und fertig.
Sollte so klappen hoffe ich.PHP-Code:<?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
// 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> ";
}
$gig = mysql_query("SELECT * FROM gigs WHERE `monat`=$mon ORDER BY id DESC");
while($g = mysql_fetch_array($gig) ) {
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 />";
?>
-
Hey,
jetzt wiederholt er den Kalender aber 3 mal... Halt so oft, nachdem wie viele einträge inner db sind
-
Du koenntest zum Beispiel den kompletten Kalender aufbauen und dann fuer jeden Tag pruefen ob es einen Eintrag in der Datenbank gibt.
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
Und wie sollte ich das anstellen?

David
-
Also waehrend Du den Kalender ausgibst weisst Du ja fuer jeden Tag den Du gerade ausgibst das Datum, entsprechend kannst Du ja in der Datenbank nachsehen ob fuer eben diesen Tag etwas eingetragen ist und dies dann eben ausgeben.
PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
__________________
EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
__________________
__________________Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
Zitat von Friedrich Nietzsche
-
JO fett



Hätt ich auch selber drauf kommen könn

naja...
thx
Ähnliche Themen
-
Benötige Hilfe bei Kalender
Von alphaone im Forum PHPAntworten: 2Letzter Beitrag: 09.11.09, 12:25 -
PHP Kalender mit MySQL Datenbank
Von Silentdevil im Forum PHPAntworten: 2Letzter Beitrag: 26.10.08, 14:15 -
PHP Kalender Wochenansicht *HILFE* :(
Von Chilled86 im Forum PHPAntworten: 5Letzter Beitrag: 31.05.07, 16:49 -
Hilfe! Probleme mit Kalender...
Von webmaster76 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 23.03.05, 12:36 -
Kalender in einer Access Datenbank erstellen
Von mjm-systemhaus im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 27.02.05, 13:09





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren