Hallo,
ich habe in einer Datenbanktabelle Belegungen für Ferienobjekte.
Jede neue Belegung kommt in eine neue Zeile.
Ich möchte die Belegungen für jedes Objekt in einem Kalender darstellen.
Die Daten sind richtig ausgelesen, aber jede Belegung wird in einem eigenen Kalender dargestellt und nicht in dem selben Kalenderblatt.
Ich komme einfach nicht mehr weiter! Wenn ich die Tabelle ausser der Schleife darstelle, wird nur der letzten Datensatz angezeigt, und so habe ich alle Datensätze aber in getrennten Kalenderblätter.
Ich würde mich sehr freuen, wenn jemand mir weiterhelfen kann.
Vielen Dank!
Julia
-------------------------------------------------------------------------------------
Webadresse: http://www.icon-ferien.de/icon/kalender.php
Mein script:
<?
include("db.php");
$db=@mysql_connect("$db_host","$db_user","$db_passwd");
if(!$db) {
die("Keine Verbindung zum SQL Server<BR>");
}
$select=@mysql_select_db("$db_name",$db);
if(!$select) {
die("Datenbank konnte nicht geoeffnet werden<BR>");
}
$Ziffer='1002';
$db_query = "SELECT Datum_von,Datum_bis,Status FROM formular WHERE Ziffer=$Ziffer";
$result = mysql_query($db_query);
$Anzahl=mysql_num_rows($result);
echo "Gefundene Datensätze nach Belegung: ".$Anzahl."<p>";
echo "<table border=\"0\" width=\"700\">";
while($row=mysql_fetch_array($result)) {
$Ziffer=$row["Ziffer"];
$Status=$row["Status"];
$Datum_von=$row["Datum_von"];
$Datum_bis=$row["Datum_bis"];
echo $Datum_von." (".$Datum_von = strtotime($Datum_von).") -".$Datum_bis." (".$Datum_bis = strtotime($Datum_bis).") Belegungsstatus: ".$Status."<br>";
?>
<?php
// *** START Jahreskalender ***
$monat=date("n");
$jahr=date("Y");
$heute=date("d");
$monate=array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktob er","November","Dezember");
echo "<th colspan=\"4\" align=\"center\" style=\"font-family:Verdana; font-size:18pt; color:#ff9900;\">".$jahr."</th>";
for($reihe=1;$reihe<=3;$reihe++)
{
echo "<tr>";
for ($spalte=1;$spalte<=4;$spalte++)
{
$this_month=($reihe-1)*4+$spalte;
$erster=date("w",mktime(0,0,0,$this_month,1,$jahr));
$insgesamt=date("t",mktime(0,0,0,$this_month,1,$jahr));
if($erster==0){$erster=7;}
echo "<td width=\"25%\" valign=\"top\">";
echo "<table border=\"0\" align=\"center\" style=\"font-size:8pt; font-family:Verdana\">";
echo "<th colspan=\"7\" align=\"center\" style=\"font-size:12pt; font-family:Arial; color:#666699;\">".$monate[$this_month-1]."</th>";
echo "<tr><td style=\"color:#666666\"><b>Mo</b></td><td style=\"color:#666666\"><b>Di</b></td>";
echo "<td style=\"color:#666666\"><b>Mi</b></td><td style=\"color:#666666\"><b>Do</b></td>";
echo "<td style=\"color:#666666\"><b>Fr</b></td><td style=\"color:#cc0000\"><b>Sa</b></td>";
echo "<td style=\"color:#cc0000\"><b>So</b></td></tr>";
echo "<tr><br>";
$i=1;
while($i<$erster){echo "<td> </td>"; $i++;}
$i=1;
while($i<=$insgesamt)
{
$rest=($i+$erster-1)%7;
$datum=$jahr."-".$this_month."-".$i;
$datum = strtotime($datum);
if($i==$heute && $this_month==$monat){echo "<td style=\"font-size:8pt; font-family:Verdana; background:#000080;\" align=center>";}
elseif($i<$heute && $this_month==$monat OR $this_month<$monat){echo "<td style=\"font-size:8pt; font-family:Verdana; background:#EFEFEF;\" align=center>";
}
else{echo "<td style=\"font-size:8pt; font-family:Verdana\" align=center>";}
if ($i==$heute && $this_month==$monat){echo "<span style=\"color:#ffffff;\">$i</span>";}
elseif ($i<$heute && $this_month==$monat OR $this_month<$monat){echo "<span style=\"color:#FFFFFF;\">$i</span>";}
else if($rest==6 AND $Status!=1 AND $Status!=2){echo "<span style=\"color:green\">$i</span>";}
else if($rest==0 AND $Status!=1 AND $Status!=2){echo "<span style=\"color:green\">$i</span>";}
else if($Datum_von <= $datum AND $Datum_bis >$datum AND $Status==1)
{
echo "<span style=\"color:#cc0000;\">$i</span>";}
else if($Datum_von <= $datum AND $Datum_bis >$datum AND $Status==2)
{
echo "<span style=\"color:#0000cc;\">$i</span>";}
else{
echo "<span style=\"color:green;\">$i</span>";}
echo "</td>\n";
if($rest==0){echo "</tr>\n<tr>\n";}
$i++;
}
echo "</tr>";
echo "</table>";
echo "</td>";
}
echo "</tr>";
}
// *** ENDE Jahreskalender ***
}
?>
-------------------------------------------------------------------------
Meine Datenbanktabelle sieht so aus:
CREATE TABLE formular (
ID mediumint(8) unsigned NOT NULL auto_increment,
Ziffer varchar(4) default NULL,
Datum_von date default '0000-00-00',
Datum_bis date NOT NULL default '0000-00-00',
Status smallint(6) NOT NULL default '-1',
datum timestamp(14) NOT NULL,
upload varchar(100) default NULL,
PRIMARY KEY (ID)
) TYPE=MyISAM;
ich habe in einer Datenbanktabelle Belegungen für Ferienobjekte.
Jede neue Belegung kommt in eine neue Zeile.
Ich möchte die Belegungen für jedes Objekt in einem Kalender darstellen.
Die Daten sind richtig ausgelesen, aber jede Belegung wird in einem eigenen Kalender dargestellt und nicht in dem selben Kalenderblatt.
Ich komme einfach nicht mehr weiter! Wenn ich die Tabelle ausser der Schleife darstelle, wird nur der letzten Datensatz angezeigt, und so habe ich alle Datensätze aber in getrennten Kalenderblätter.
Ich würde mich sehr freuen, wenn jemand mir weiterhelfen kann.
Vielen Dank!
Julia
-------------------------------------------------------------------------------------
Webadresse: http://www.icon-ferien.de/icon/kalender.php
Mein script:
<?
include("db.php");
$db=@mysql_connect("$db_host","$db_user","$db_passwd");
if(!$db) {
die("Keine Verbindung zum SQL Server<BR>");
}
$select=@mysql_select_db("$db_name",$db);
if(!$select) {
die("Datenbank konnte nicht geoeffnet werden<BR>");
}
$Ziffer='1002';
$db_query = "SELECT Datum_von,Datum_bis,Status FROM formular WHERE Ziffer=$Ziffer";
$result = mysql_query($db_query);
$Anzahl=mysql_num_rows($result);
echo "Gefundene Datensätze nach Belegung: ".$Anzahl."<p>";
echo "<table border=\"0\" width=\"700\">";
while($row=mysql_fetch_array($result)) {
$Ziffer=$row["Ziffer"];
$Status=$row["Status"];
$Datum_von=$row["Datum_von"];
$Datum_bis=$row["Datum_bis"];
echo $Datum_von." (".$Datum_von = strtotime($Datum_von).") -".$Datum_bis." (".$Datum_bis = strtotime($Datum_bis).") Belegungsstatus: ".$Status."<br>";
?>
<?php
// *** START Jahreskalender ***
$monat=date("n");
$jahr=date("Y");
$heute=date("d");
$monate=array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktob er","November","Dezember");
echo "<th colspan=\"4\" align=\"center\" style=\"font-family:Verdana; font-size:18pt; color:#ff9900;\">".$jahr."</th>";
for($reihe=1;$reihe<=3;$reihe++)
{
echo "<tr>";
for ($spalte=1;$spalte<=4;$spalte++)
{
$this_month=($reihe-1)*4+$spalte;
$erster=date("w",mktime(0,0,0,$this_month,1,$jahr));
$insgesamt=date("t",mktime(0,0,0,$this_month,1,$jahr));
if($erster==0){$erster=7;}
echo "<td width=\"25%\" valign=\"top\">";
echo "<table border=\"0\" align=\"center\" style=\"font-size:8pt; font-family:Verdana\">";
echo "<th colspan=\"7\" align=\"center\" style=\"font-size:12pt; font-family:Arial; color:#666699;\">".$monate[$this_month-1]."</th>";
echo "<tr><td style=\"color:#666666\"><b>Mo</b></td><td style=\"color:#666666\"><b>Di</b></td>";
echo "<td style=\"color:#666666\"><b>Mi</b></td><td style=\"color:#666666\"><b>Do</b></td>";
echo "<td style=\"color:#666666\"><b>Fr</b></td><td style=\"color:#cc0000\"><b>Sa</b></td>";
echo "<td style=\"color:#cc0000\"><b>So</b></td></tr>";
echo "<tr><br>";
$i=1;
while($i<$erster){echo "<td> </td>"; $i++;}
$i=1;
while($i<=$insgesamt)
{
$rest=($i+$erster-1)%7;
$datum=$jahr."-".$this_month."-".$i;
$datum = strtotime($datum);
if($i==$heute && $this_month==$monat){echo "<td style=\"font-size:8pt; font-family:Verdana; background:#000080;\" align=center>";}
elseif($i<$heute && $this_month==$monat OR $this_month<$monat){echo "<td style=\"font-size:8pt; font-family:Verdana; background:#EFEFEF;\" align=center>";
}
else{echo "<td style=\"font-size:8pt; font-family:Verdana\" align=center>";}
if ($i==$heute && $this_month==$monat){echo "<span style=\"color:#ffffff;\">$i</span>";}
elseif ($i<$heute && $this_month==$monat OR $this_month<$monat){echo "<span style=\"color:#FFFFFF;\">$i</span>";}
else if($rest==6 AND $Status!=1 AND $Status!=2){echo "<span style=\"color:green\">$i</span>";}
else if($rest==0 AND $Status!=1 AND $Status!=2){echo "<span style=\"color:green\">$i</span>";}
else if($Datum_von <= $datum AND $Datum_bis >$datum AND $Status==1)
{
echo "<span style=\"color:#cc0000;\">$i</span>";}
else if($Datum_von <= $datum AND $Datum_bis >$datum AND $Status==2)
{
echo "<span style=\"color:#0000cc;\">$i</span>";}
else{
echo "<span style=\"color:green;\">$i</span>";}
echo "</td>\n";
if($rest==0){echo "</tr>\n<tr>\n";}
$i++;
}
echo "</tr>";
echo "</table>";
echo "</td>";
}
echo "</tr>";
}
// *** ENDE Jahreskalender ***
}
?>
-------------------------------------------------------------------------
Meine Datenbanktabelle sieht so aus:
CREATE TABLE formular (
ID mediumint(8) unsigned NOT NULL auto_increment,
Ziffer varchar(4) default NULL,
Datum_von date default '0000-00-00',
Datum_bis date NOT NULL default '0000-00-00',
Status smallint(6) NOT NULL default '-1',
datum timestamp(14) NOT NULL,
upload varchar(100) default NULL,
PRIMARY KEY (ID)
) TYPE=MyISAM;
Kommentar