Hallo,
ich habe ein Kalender-Script (Belegungsplan). Ist etwas reserviert / belegt, würde ich ganz gerne den ersten und letzten Tag nur halbiert darstellen lassen.
Man muss sich den Aufbau so vorstellen, dass 31 Vierecke (derzeit td, tr) horizontal die Tage angeben, vertikal 12 Reihen die Monate. Bei Belegung werden diese Kästchen derzeit in einer anderen Farbe dargestellt.
Kann mir jemand helfen / Ansätze liefern?
.. und dann gibts dazu noch folgende Zeile, die den ausgewählten Zeitraum in die DB speichert. Nur ist es für mich unmöglich, den das Anfangs- und Enddatum herauszufiltern.
ich habe ein Kalender-Script (Belegungsplan). Ist etwas reserviert / belegt, würde ich ganz gerne den ersten und letzten Tag nur halbiert darstellen lassen.
Man muss sich den Aufbau so vorstellen, dass 31 Vierecke (derzeit td, tr) horizontal die Tage angeben, vertikal 12 Reihen die Monate. Bei Belegung werden diese Kästchen derzeit in einer anderen Farbe dargestellt.
Kann mir jemand helfen / Ansätze liefern?
PHP:
<?php
$verbinden = mysql_connect($db['server'], $db['user'], $db['pw']) or die(mysql_error());
mysql_select_db($db['name'], $verbinden) or die(mysql_error());
function table() {
global $db;
global $prefs;
global $color;
global $verbinden;
global $jahr;
$heute = date('m') . date('d');
$tag_count = 1;
$tabelle = $db['tabprefix'] . $jahr;
$monate = array('', 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');
echo '<table border="0" cellspacing="3" cellpadding="0">';
$monat = 0;
while ($monat <= 12) {
echo '<tr>';
echo '<td width=120><b>' . $monate[$monat] . '</b></td>';
$tag = 1;
while ($tag <= 31) {
// Ausgabe Tage 1-31
if ($monat == 0) {
echo '<td height=40 align=center>';
if (strlen($tag) == 1) echo '0';
echo $tag . '</td>';
}
else {
if($tag_count < 1000) $tag_char = "0" . $tag_count;
else $tag_char = $tag_count;
$frage = "SELECT belegt, we, infotext FROM $tabelle WHERE tag = '$tag_char'";
$ergebnis = mysql_query($frage, $verbinden);
if (mysql_numrows($ergebnis) == 0) {
$belegung = 'leer';
$content = '';
}
else {
$array = mysql_fetch_array($ergebnis);
if ($array[0] == 0) $belegung = 'frei';
elseif ($array[0] == 1) $belegung = 'reserviert';
elseif ($array[0] == 2) {
$belegung = 'belegt';
$content = 'B';
}
if ($array[1] == 6) $content = 'Sa';
elseif ($array[1] == 7) $content = 'So';
else $content = ''; /* ausgabe aller Tage außer WE */
// Tage in der Vergangenheit
if($prefs['white_old'] == 1) {
if((($jahr == date('Y')) and ($tag_count < $heute)) or ($jahr < date('Y'))) $belegung = 'leer';
}
}
echo '<td align="center" width=20 height=20 ' . $class . 'style="background-color:' . $color[$belegung] . '">' . $content . '</td>';
}
$tag++;
$tag_count++;
}
echo '</tr>';
$monat++;
$tag_count = $tag_count + 69;
}
echo '</table>';
}
?>
.. und dann gibts dazu noch folgende Zeile, die den ausgewählten Zeitraum in die DB speichert. Nur ist es für mich unmöglich, den das Anfangs- und Enddatum herauszufiltern.
PHP:
if ($_REQUEST['action'] == 'update') {
$year = $_POST['1year'];
while ($year <= $_POST['2year']) {
if ($year == $_POST['1year']) $month = $_POST['1month'];
else $month = 1;
if ($year == $_POST['2year']) $month_end = $_POST['2month'];
else $month_end = 12;
while ($month <= $month_end) {
if (strlen($month) == 1) $month_char = '0' . $month;
else $month_char = $month;
if (($month_char == $_POST['1month']) and ($year == $_POST['1year'])) $day = $_POST['1day'];
else $day = 1;
if (($month_char == $_POST['2month']) and ($year == $_POST['2year'])) $day_end = $_POST['2day'];
else $day_end = 31;
while ($day <= $day_end) {
if (strlen($day) == 1) $day_char = '0' . $day;
else $day_char = $day;
$tag = $month_char . $day_char;
// update($year, $tag, $_POST['kind'], $_POST['infotext']);
echo $tag.", ";
$day++;
}
$month++;
}
$year++;
}
}