www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » MySQL Tutorial - Datenbank unter PHP » Beispiel Terminkalender » Script PHP-Terminkalender

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>";
    }
}
?>

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe