PHP Kurs zum PHP programmieren lernen

www.PHP-Kurs.com

PHP lernen für Einsteiger und Fortgeschrittene

 

Script PHP-Terminkalender

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, wird die Echtheit der Daten überprüft
if ( $_GET['monat'] )
{
         if ( (INT) $_GET['monat'] > 0 AND (INT) $_GET['monat'] < 13 )
    {
            $monat = (INT) $_GET['monat'];
    }
    else
    {
        // ist kein Monat angegeben, wird der aktuelle Monat verwendet
       $monat = date("n");
    }
}
else
{
    // ist kein Monat angegeben, wird der aktuelle Monat 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&auml;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&ouml;schen</a> ';
  echo '</td>';

  echo '<td>';
  echo '<a href="terminanzeige.php?vorgang=aendern&id=';
  echo $zeile['id'];
  echo '">&auml;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&auml;chster Monat</a>';


// Anzeige Formular
echo '<hr />';
echo '<form name="" action="" method="POST" enctype="text/html">';

echo '<p>Datum in der Form JJJJ-MM-TT<br />';
echo '<input type="text" name="termin[datum]" value="" size="10" maxlength="10" />';
echo '</p>';

echo '<p>Kurzbeschreibung<br />';
echo '<input type="text" name="termin[kurzbeschreibung]" value="" size="50" maxlength="255" />';
echo '</p>';

echo '<p>ausf&uuml;hrliche Beschreibung<br />';
echo '<textarea name="termin[beschreibung]" rows="10" cols="80"></textarea></p>';

echo '<input type="hidden" name="vorgang" value="neu" />';

echo '<input type="Submit" name="" 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&ouml;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 name="" action="" method="POST" enctype="text/html">';

    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]" value="';
    echo $zeile['titel'];
    echo '" size="50" maxlength="255" />';
    echo '</p>';

    echo '<p>ausf&uuml;hrliche Beschreibung<br />';
    echo '<textarea name="termin[beschreibung]" rows="10" 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" name="" value="&Auml;nderungen 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>";
    }
}

?>
Beispiel TerminkalenderSeitenanfangMySQL sauber schreiben
PHP-Kurs.com - jetzt PHP lernen    Bookmark bei del.icio.us setzen    Bookmark bei Mister Wong setzen