Script PHP-Terminkalender

Alle Erklärungen finden Sie zum Terminkalender mit MySQL und PHP Schritt für Schritt im vorherigen Kapitel „Tutorial Terminkalender programmieren“.

Das Konfigurationsskript für den Terminkalender:

PHP-Quellcode: termin-konfiguration.php
<?php define ( 'MYSQL_HOST', 'localhost' ); define ( 'MYSQL_BENUTZER', 'root' ); define ( 'MYSQL_KENNWORT', '' ); define ( 'MYSQL_DATENBANK', 'terminkalender' );   $db_link = @mysql_connect (MYSQL_HOST,                            MYSQL_BENUTZER,                            MYSQL_KENNWORT);   if ( ! $db_link ) {   // hier sollte dann später dem Programmierer eine   // E-Mail mit dem Problem zukommen gelassen werden   // die Fehlermeldung für den Programmierer sollte   // das Problem ausgeben mit: mysql_error()   die('keine Verbindung zur Zeit möglich - später probieren '); } ?> 

Das Hauptskript, in dem Termine angezeigt, angelegt, geändert und gelöscht werden können. Die Anzeige im Terminkalender erfolgt monatsweise.

PHP-Quellcode: kompletter Terminkalender
<?php require ('termin-konfiguration.php');   $db_sel = mysql_select_db( MYSQL_DATENBANK )     or die("Auswahl der Datenbank fehlgeschlagen");   // Speichern neuer Daten if ( $_POST['vorgang'] == 'neu' ) {     speichere_daten ( $_POST['termin'] ); }   // Löschen von Einträgen if ( $_GET['vorgang'] == 'loeschen' ) {     loeschen_daten ( $_GET['id'] ); }   // Daten zum ändern anzeigen if ( $_GET['vorgang'] == 'aendern'       AND       $_POST['vorgang'] <> 'update'     ) {     anzeige_daten_zum_bearbeiten ( $_GET['id'] ); }   if ( $_POST['vorgang'] == 'update' ) {     update_daten ( $_POST['termin'] ); }   // wenn ein Monat angegeben ist, Kontrolle der Angabe if ( $_GET['monat'] ) {   if ( (INT) $_GET['monat'] > 0 AND (INT) $_GET['monat'] < 13 )   {     $monat = (INT) $_GET['monat'];   }   else   {     // ohne Angabe wird der aktuelle Monat verwendet     $monat = date("n");   } } else {   // aktuelle Monat wird verwendet   $monat = date("n"); }   if ( $_GET['jahr'] ) {   if ( (INT) $_GET['jahr'] > 0         AND         (INT) $_GET['jahr'] < 3000       )   {     $jahr = (INT) $_GET['jahr'];   }   else   {     $jahr = date("Y");   } } else {   $jahr = date("Y"); }   // Ausgabe vom Monat und dem Jahr echo "<h1>Terminkalender $monat.$jahr</h1>";   $sql = " SELECT   id, datum, titel, beschreibung FROM termine WHERE    YEAR(datum) = '$jahr' AND   MONTH(datum) = '$monat' ORDER BY datum ";   $db_erg = mysql_query( $sql ); if ( ! $db_erg ) {   die('Ungültige Abfrage: ' . mysql_error()); }   $anzahl_eintraege = mysql_num_rows($db_erg); echo "<p>Anzahl der Einträge: $anzahl_eintraege</p>";   // Ausgabe Tabelle mit Terminen echo '<table border="1">'; while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC)) {   echo '<tr>';   echo '<td>'. $zeile['datum'] . '</td>';   echo '<td>';   echo '<b>'. $zeile['titel'] . '</b><br>';   echo $zeile['beschreibung'];   echo '</td>';     echo '<td>';   echo '<a href="terminanzeige.php?vorgang=loeschen&id=';   echo $zeile['id'];   echo '">löschen</a> ';   echo '</td>';     echo '<td>';   echo '<a href="terminanzeige.php?vorgang=aendern&id=';   echo $zeile['id'];   echo '">ändern</a> ';     echo '</td>';     echo '</tr>'; } echo '</table>';   mysql_free_result( $db_erg );   // Vormonat Kontrolle, ob bereits Januar if ( $monat == 1 ) {     $vmonat = 12;     $vjahr = bcsub ( $jahr, 1 ); } else {     $vmonat = bcsub ( $monat, 1 );     $vjahr = $jahr; }   echo '<a href="terminanzeige.php'; echo '?monat='. $vmonat; echo '&jahr='. $vjahr; echo '">Vormonat</a>';   echo ' | ';   echo '<a href="terminanzeige.php'; echo '?monat='. date("n"); echo '&jahr='. date("Y"); echo '">akt. Monat</a>';   echo ' | ';   // nächster Monat - Kontrolle, ob bereits Dezember if ( $monat == 12 ) {     $nmonat = 1;     $njahr = bcadd ( $jahr, 1 ); } else {     $nmonat = bcadd ( $monat, 1 );     $njahr = $jahr; } echo '<a href="terminanzeige.php'; echo '?monat='. $nmonat; echo '&jahr='. $njahr; echo '">nächster Monat</a>';     // Anzeige Formular echo '<hr>'; echo '<form name="" action="" method="POST">';   echo '<p>Datum in der Form JJJJ-MM-TT<br>'; echo '<input type="text" name="termin[datum]" value="">'; echo '</p>';   echo '<p>Kurzbeschreibung<br>'; echo '<input type="text" name="termin[kurzbeschreibung]">'; echo '</p>';   echo '<p>ausführliche Beschreibung<br>'; echo '<textarea name="termin[beschreibung]" rows="9" '; echo ' cols="80"><</p>';   echo '<input type="hidden" name="vorgang" value="neu">';   echo '<input type="Submit" value="speichern">'; echo '</form>';     // Daten speichern function speichere_daten ( $termin ) {   // hier sollte noch eine Validierung des    // Datums stattfinden     $sql = "INSERT INTO termine           (            `id`,`datum`,`titel`,`beschreibung`           )           VALUES           (             NULL ,             '". $termin['datum'] ."',             '". $termin['kurzbeschreibung'] ."',             '". $termin['beschreibung'] ."'           )        ";       $db_erg = mysql_query( $sql );     if ( ! $db_erg )     {         die("Ungültige Abfrage: $sql <hr>" . mysql_error());     }     else     {         echo "<h2>Termin gespeichert</h2>";     } }   function loeschen_daten ( $id ) {     $sql = "DELETE FROM termine             WHERE id='$id'             LIMIT 1             ";       $db_erg = mysql_query( $sql );     if ( ! $db_erg )     {       die("Ungültige Abfrage: $sql <hr>" . mysql_error());     }     else     {       echo "<h2>Termin gelöscht</h2>";     } }   function anzeige_daten_zum_bearbeiten ($id) {   $sql = " SELECT *            FROM termine            WHERE id = '$id'          ";     $db_erg = mysql_query( $sql );   if ( ! $db_erg )   {     die('Ungültige Abfrage: ' . mysql_error());   }     $zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC);     echo '<form action="" method="POST">';     echo '<p>Datum in der Form JJJJ-MM-TT<br>';   echo '<input type="text" name="termin[datum]" value="';   echo $zeile['datum'];   echo '" size="10" maxlength="10">';   echo '</p>';     echo '<p>Kurzbeschreibung<br>';   echo '<input type="text" name="termin[kurzbeschreibung]" ';   echo ' value="';   echo $zeile['titel'];   echo '" size="50" maxlength="255">';   echo '</p>';     echo '<p>ausführliche Beschreibung<br>';   echo '<textarea name="termin[beschreibung]" rows="9" ';   echo ' cols="80">';   echo $zeile['beschreibung'];   echo '<</p>';     echo '<input type="hidden" name="termin[id]" value="';   echo $zeile['id'];   echo '">';   echo '<input type="hidden" name="vorgang" value="update">';     echo '<input type="Submit" value="Änderung speichern">';   echo '</form>';   echo '<hr>'; }   // Daten updaten function update_daten ( $termin ) {     // hier sollte noch eine Validierung des Datums stattfinden     $sql = "UPDATE termine SET         `datum` = '". $termin['datum'] ."',         `titel` = '". $termin['kurzbeschreibung'] ."',         `beschreibung` = '". $termin['beschreibung'] ."'     WHERE         id = '". $termin['id'] ."'     ";       $db_erg = mysql_query( $sql );     if ( ! $db_erg )     {         die("Ungültige Abfrage: $sql <hr>" . mysql_error());     }     else     {         echo "<h2>Termin geupdatet</h2>";     } } ?>