Kalender Tutorial + Termine

Shooter2k

Erfahrenes Mitglied
Hallo erstmal Lob an das schöne Kalender Tutorial!

Es funktioniert einwandfrei ;) . Nun möchte ich, aus einer DB Den Termin zB 28.12.03 vergleichen und es ausgeben lassen. Anlass und Tag aus der Datenbank soll er ausgelesen. Nur weis ich nicht wie ich es vergleiche. Also bei EINEN Termin geht es, ich habe es einfach mit if gemacht aber bei vielen Terminen komme ich aus den ganzen iffen nicht mehr raus ;)

Hier nochmal das Kalender Tut

Es wäre nett wenn mir jemand ganz kurz sagen könnte, wie ich es mache.
Er sollte mir den Tag ausgeben mit den "Anlasstext" und einen DetailsLink aus der Datenbank. zB am Kalender : 1,2,3,4, <a href="test">Testtermin</a> 5

Vielen vielen Dank schon mal

mfg Henry
 
Hallo du Ich weiss es ist schon lange her als du diesen Text erfasst hasst, aber vieleicht könntest du mir noch schnell sagen was du gemacht hast das er lief. es ist so das ich den auch durchgemacht habe und es kommt nun immer die Fehlermeldung, das es in der line 4 einen { gehler hat! aber leiter ist das noch nicht meine spezialität und desshalb die frage kanst du mir helfen?

mfg bambid
 
Re: FEHLER IM KALENDER!

Hallo,

ich habe das Tutorial mal angeschaut und das Kalenderscript erweitern um mit MySQL einen Terminkalender zu erhalten.
Dabei bin ich darauf gestossen, dass es im Algorithums einen Fehler hat. Konnte ihn bis jetzt noch nicht ausbügeln.

Wählt im Kalender mal Oktober 2005. Der 30. kommt 2 mal vor :-)

Gruss Jeyenne
 
Den Fehler kannst du einfach mit der Änderung beheben:

$start = mktime ( 0, 0, 0, $monat, 1, $jahr );

musst du auf ->

$start = mktime ( 10, 10, 0, $monat, 1, $jahr );

weiss zwar nicht genau warum, doch ich denke das mit der Zeitrechnung
im Oktober ein Tag kürzer ist oder so ....

Ich habe das ganz Tutorial noch etwas überarbeitet,
so dass die Tage vom Monat davor und danach die Leeren Felder füllen...
Ich weiss nicht ob das die beste Lösung ist, doch es klappt ...

Außerdem habe ich den Wochenanfang geändert :)
Nicht Sonntag, was ich recht komisch finde sondern Montag

PHP:
<?php
define("EINTAG", (60*60*24) );
if ( ! checkdate( $monat, 1, $jahr ) )
    {
     $heuteArr = getdate();
    $monat = $heuteArr[mon];
    $jahr = $heuteArr[year];
    }
$start = mktime ( 10, 10, 0, $monat, 1, $jahr );
$ersterArr = getdate($start);
?> 

<html>
<head>
<title><?php print "Kalendar: $ersterArr[month]
        $ersterArr[year]" ?></title>
<head>
<body>
<form action="<? print $PHP_SELF ?>" method="post">
<select name="monat">
<?php
$monate = Array("January", "February", "March", "April",
                "May", "June", "July", "August", "September",
                "October", "November", "December");
for ( $x=1; $x <= count( $monate ); $x++ )
    {
    print "\t<option value=\"$x\"";
    print ($x == $monat)?" SELECTED":"";
    print ">".$monate[$x-1]."\n";
    }
?>
</select>
<select name="jahr">
<?php
for ( $x=1980; $x<2010; $x++ )
    {
    print "\t<option";
    print ($x == $jahr)?" SELECTED":"";
    print ">$x\n";
    }
?>
</select>
<input type="submit" value="Los geht's!">
</form>

<p>
<?php
$days = Array("Monday", "Tuesday", "Wednesday",
              "Thursday", "Friday", "Saturday", "Sunday");
			  
$monStart = $ersterArr[wday]-1;		
if ($monStart < 0) { $monStart = 6;	}
	
print "<TABLE BORDER = 1 CELLPADDING=5>\n";
foreach ( $days as $day )
    print "\t<td><b>$day</b></td>\n"; 
	
for ( $zaehler=0; $zaehler < (6*7); $zaehler++ )
    {
    $tagArr = getdate( $start ); 
if ( (($zaehler) % 7) == 0 )
        {
        if ( $tagArr[mon] != $monat )
            break;
        print "</tr><tr>\n";
        } 
/*
if ( $zaehler < $monStart || $tagArr[mon] != $monat )
        {
        print "\t<td><br></td>\n";
        }
*/
if ( $zaehler < $monStart)
        {
		$vorMonArr = getdate(mktime ( 0, 0, 0, $monat, 1, $jahr ) - (($monStart-$zaehler)*60*60*24));
        print "\t<td>$vorMonArr[mday]</td>\n";
        } 
elseif ($tagArr[mon] != $monat) 
        {
        print "\t<td>$tagArr[mday]</td>\n";
		$start += EINTAG;
        } 
else
        {
        print "\t<td>$tagArr[mday]</td>\n";
        $start += EINTAG;
        }
    } 
print "</tr></table>";
?>
</body>
</html>

Ich hoffe ich kann da welchen mit helfen :)
mfg meli
 
Zuletzt bearbeitet:
Hm diesen Kalender zum EventKalender (oder was ihr machen wollt) zu erweitern würde ich sowieso nicht so empfehlen.

Der scheint mir etwas umständlich zu sein, auch wenn er funktioniert.
So auf den ersten Blick seh ich schon ein paar Sachen, die ich einfacherer machen würde.
Vorallem gefällt mir die Variablenbenennung nicht :D

Das Tutorial ist aber an sich ganz nett, da sieht man, wie man sowas überhaupt realisieren soll, dennoch nicht gerade das, was ich optimierten Programmiercode nenne.
 
Zurück