Hallo,
ich bin gerade dabei den phpplanner umzubauen. Ich möchte, dass ausgebuchte Tage rot markiert werden. Dazu habe ich folgendes Script gebaut:
for ($i = 0; $i != $current['number_of_rows']; $i++) {
if (!isset($day)) $day = 1;
printf("\n</tr><tr>\n\n\t<td valign=\"top\" class=\"calweek\" width=\"39\" height=\"%d\">%d</td>\n\n"
,$config['cell_height']
,date("W",mktime(0,0,0,$current['month'],$day+1,$current['year']))
);
if ($i == 0)
for ($col = 1; $col <= $current['first_day_of_month']; $col++)
echo "<td class=\"calNotDay\" height=\"". $config['cell_height'] ."\"> </td>\n\n";
while ($day <= $current['days_in_month']) {
$col_date = mktime(0,0,0,$current['month'],$day,$current['year']);
$SQL = mysql_query("SELECT einzelzimmer, doppelzimmer, apartments FROM freie_zimmer
WHERE `date` >= ". $col_date ."
AND `date` < ". mktime(0,0,0,$current['month'],$day+1,$current['year']) .""
);
$booked_1 = "";
$booked_2 = "";
$booked_3 = "";
$isteinzelzimmer = 15;
$istdoppelzimmer = 15;
$istapartments = 5;
$color = 0;
$full_headline = "";
while ( $RS = mysql_fetch_array($SQL) )
{
$booked_1 = ( !empty($RS['einzelzimmer']) ) ? "<br />". substr(trim($RS['einzelzimmer']),0,15) : "";
$booked_2 = ( !empty($RS['doppelzimmer']) ) ? "<br />". substr(trim($RS['doppelzimmer']),0,15) : "";
$booked_3 = ( !empty($RS['apartments']) ) ? "<br />". substr(trim($RS['apartments']),0,15) : "";
$isteinzelzimmer = 15 - $booked_1;
$istdoppelzimmer = 15 - $booked_2;
$istapartments = 2 - $booked_3;
echo $booked_1.'<br>';
echo $booked_2.'<br>';
echo $booked_3.'<br>';
echo $_SESSION['einzelzimmer'].'<br>';
echo $isteinzelzimmer.'<br>';
echo $istapartments.'<br>';
}
printf("<td valign=\"top\" class=\"%s\" bgcolor=\"%s\" width=\"%d\" height=\"%d\">"
,($col_date == mktime(0,0,0,date("n"),date("j"),date("Y"))) ? "calCurrentDay" : "calOtherDay"
,$config['colors'][$color][0]
,round(($config['table_width']-38)/7,0)
,$config['cell_height']
);
if(($isteinzelzimmer >= $_SESSION['einzelzimmer']) AND ($istdoppelzimmer >= $_SESSION['doppelzimmer']) AND ($istapartments >= $_SESSION['apartments']))
{
printf("<a href=\"settobook.php?stamp=%d\"> %s "
,$col_date
,ftime("%d",$col_date)
,mysql_num_rows($SQL)
);
printf("</a></td>\n\n"
);
} else {
printf("<span style=\"color: #ff0000;\"> %s </span>"
,$col_date
,ftime("%d",$col_date)
,mysql_num_rows($SQL)
);
}
$day++;
if ((date("w", $col_date)+1) == 7)
break;
} // end while
} // end for
Leider entsprechen die Schluesselwert $isteinzelzimmer etc. nicht dem subtrahierten Wert. Es ist zwar so, dass $booked_1, wenn man den Wert anzeigt, dem in der Datenbank gespreicherten Wert entspricht, jedoch wird dieser Wert in den nächstfolgenden Zeilen nicht abgezogen.
Außerdem wird im folgenden Scriptteil kein datum angezeigt sondern nur der Timestamp
printf("<span style=\"color: #ff0000;\"> %s </span>"
,$col_date
,ftime("%d",$col_date)
,mysql_num_rows($SQL)
);
Wer kann mir da auf die sprünge helfen?
ich bin gerade dabei den phpplanner umzubauen. Ich möchte, dass ausgebuchte Tage rot markiert werden. Dazu habe ich folgendes Script gebaut:
for ($i = 0; $i != $current['number_of_rows']; $i++) {
if (!isset($day)) $day = 1;
printf("\n</tr><tr>\n\n\t<td valign=\"top\" class=\"calweek\" width=\"39\" height=\"%d\">%d</td>\n\n"
,$config['cell_height']
,date("W",mktime(0,0,0,$current['month'],$day+1,$current['year']))
);
if ($i == 0)
for ($col = 1; $col <= $current['first_day_of_month']; $col++)
echo "<td class=\"calNotDay\" height=\"". $config['cell_height'] ."\"> </td>\n\n";
while ($day <= $current['days_in_month']) {
$col_date = mktime(0,0,0,$current['month'],$day,$current['year']);
$SQL = mysql_query("SELECT einzelzimmer, doppelzimmer, apartments FROM freie_zimmer
WHERE `date` >= ". $col_date ."
AND `date` < ". mktime(0,0,0,$current['month'],$day+1,$current['year']) .""
);
$booked_1 = "";
$booked_2 = "";
$booked_3 = "";
$isteinzelzimmer = 15;
$istdoppelzimmer = 15;
$istapartments = 5;
$color = 0;
$full_headline = "";
while ( $RS = mysql_fetch_array($SQL) )
{
$booked_1 = ( !empty($RS['einzelzimmer']) ) ? "<br />". substr(trim($RS['einzelzimmer']),0,15) : "";
$booked_2 = ( !empty($RS['doppelzimmer']) ) ? "<br />". substr(trim($RS['doppelzimmer']),0,15) : "";
$booked_3 = ( !empty($RS['apartments']) ) ? "<br />". substr(trim($RS['apartments']),0,15) : "";
$isteinzelzimmer = 15 - $booked_1;
$istdoppelzimmer = 15 - $booked_2;
$istapartments = 2 - $booked_3;
echo $booked_1.'<br>';
echo $booked_2.'<br>';
echo $booked_3.'<br>';
echo $_SESSION['einzelzimmer'].'<br>';
echo $isteinzelzimmer.'<br>';
echo $istapartments.'<br>';
}
printf("<td valign=\"top\" class=\"%s\" bgcolor=\"%s\" width=\"%d\" height=\"%d\">"
,($col_date == mktime(0,0,0,date("n"),date("j"),date("Y"))) ? "calCurrentDay" : "calOtherDay"
,$config['colors'][$color][0]
,round(($config['table_width']-38)/7,0)
,$config['cell_height']
);
if(($isteinzelzimmer >= $_SESSION['einzelzimmer']) AND ($istdoppelzimmer >= $_SESSION['doppelzimmer']) AND ($istapartments >= $_SESSION['apartments']))
{
printf("<a href=\"settobook.php?stamp=%d\"> %s "
,$col_date
,ftime("%d",$col_date)
,mysql_num_rows($SQL)
);
printf("</a></td>\n\n"
);
} else {
printf("<span style=\"color: #ff0000;\"> %s </span>"
,$col_date
,ftime("%d",$col_date)
,mysql_num_rows($SQL)
);
}
$day++;
if ((date("w", $col_date)+1) == 7)
break;
} // end while
} // end for
Leider entsprechen die Schluesselwert $isteinzelzimmer etc. nicht dem subtrahierten Wert. Es ist zwar so, dass $booked_1, wenn man den Wert anzeigt, dem in der Datenbank gespreicherten Wert entspricht, jedoch wird dieser Wert in den nächstfolgenden Zeilen nicht abgezogen.
Außerdem wird im folgenden Scriptteil kein datum angezeigt sondern nur der Timestamp
printf("<span style=\"color: #ff0000;\"> %s </span>"
,$col_date
,ftime("%d",$col_date)
,mysql_num_rows($SQL)
);
Wer kann mir da auf die sprünge helfen?
Kommentar