Alle Erklärungen finden Sie zum Terminkalender mit MySQL und PHP Schritt für Schritt im Tutorial Terminkalender programmieren.
Das Konfigurationsskript für den Terminkalender:
<?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 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"></textarea></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 '</textarea></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>"; } } ?>
Video-Tutorial:
über 200 Videos,
Gesamtspielzeit über 23 Stunden
Jetzt
Video-Kurs PHP-Tutorial auf DVD bestellen