www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP für Fortgeschrittene » Übung Terminkalender » Lösung Übung Terminkalender

Lösung zur Übung Terminkalender

kompletter Quellcode zum Terminkalender

Ihr eigenes Ergebnis kann (wird i.d.R.) anders aussehen - wichtig, dass es funktioniert - sehen Sie diesen Vorschlag als Anregung und nicht zum frustieren - wichtig ist beim lernen von Programmiersprachen, sich nicht entmutigen zu lassen!!

<?php
$termin[] = array('Datum' => 20221208, 
                  'Ort'   => "Wangen", 
                  'Band'  => "cOoL RoCk oPaS");

$termin[] = array('Datum' => 20220311, 
                  'Ort'   => "Stuttgart", 
                  'Band'  => "Die Hosenbodenband");

$termin[] = array('Datum' => 20220628, 
                  'Ort'   => "Tübingen", 
                  'Band'  => "flying socks");

$termin[] = array('Datum' => 20220628, 
                  'Ort'   => "Stuttgart", 
                  'Band'  => "flying socks");

// print_r ( $termin );

foreach ($termin as $nr => $inhalt)
{
    $band[$nr]  = strtolower( $inhalt['Band'] );
    $ort[$nr]   = strtolower( $inhalt['Ort'] );
    $datum[$nr] = strtolower( $inhalt['Datum'] );
}

switch ( $_GET['sortierung'] )
{
    case ("d"):
        // Sortierung nach Datum und Ort aufsteigend
        array_multisort($datum, SORT_ASC, $ort,SORT_ASC,$termin);
        break;
    case ("o"):
        // Sortierung nach Ort aufsteigend
        array_multisort($ort, SORT_ASC, $termin);
        break;
    case ("b"):
        // Sortierung nach Band aufsteigend
        array_multisort($band, SORT_ASC, $termin);
        break;
    case ("da"):
        // Sortierung nach Datum und Ort aufsteigend
        array_multisort($datum, SORT_DESC, $termin);
        break;
    case ("oa"):
        // Sortierung nach Ort aufsteigend
        array_multisort($ort, SORT_DESC, $termin);
        break;
    case ("ba"):
        // Sortierung nach Band aufsteigend
        array_multisort($band, SORT_DESC, $termin);
        break;
    DEFAULT:
        // Sortierung nach Datum
        array_multisort($datum, SORT_ASC, $ort,SORT_ASC,$termin);
}

ausgabe_tabelle ( $termin );

function ausgabe_tabelle ( $termin )
{
    echo '<table border="1">';

    // Kopf fuer sortierung
    echo '<tr bgcolor="#6C9DE6">';
    echo '<th>';
    echo ' ';
    echo '</th>';

    echo '<th>';
        echo 'Datum ';
        echo '<a href="terminkalender.php?sortierung=d">';
        echo '↓</a>';
        echo ' ';
        echo '<a href="terminkalender.php?sortierung=da">';
        echo '↑</a>';
    echo '</th>';

    echo '<th>';
        echo 'Band ';
        echo '<a href="terminkalender.php?sortierung=b">';
        echo '↓</a>';
        echo ' ';
        echo '<a href="terminkalender.php?sortierung=ba">';
        echo '↑</a>';
    echo '</th>';

    echo '<th>';
        echo 'Ort ';
        echo '<a href="terminkalender.php?sortierung=o">';
        echo '↓</a>';
        echo ' ';
        echo '<a href="terminkalender.php?sortierung=oa">';
        echo '↑</a>';
    echo '</th>';
    echo '</tr>';

    foreach ($termin AS $inhalt )
    {
        $zeilenr++;
        echo '<tr';
        echo farbwechsel ( $zeilenr );
        echo '>';
        echo '<td>';
            echo $zeilenr. ".";
        echo '</td>';

        echo '<td>';
            echo datum_deutsch ( $inhalt['Datum'] );
        echo '</td>';

        echo '<td>';
            echo $inhalt['Band'];
        echo '</td>';

        echo '<td>';
            echo $inhalt['Ort'];
        echo '</td>';
        echo '</tr>';
    }
    echo '</table>';
}

function datum_deutsch ( $datum )
{
    $jahr  = substr ( $datum, 0, 4 );
    $monat = substr ( $datum, 4, 2 );
    $tag   = substr ( $datum, -2 );
    $datum_deutsch = $tag .".". $monat .".". $jahr;
    return ( $datum_deutsch );
}

function farbwechsel ( $zeilenr )
{
    if ( bcmod ( $zeilenr , '2' ) == 0 )
    {
        $hintergrundfarbe = ' bgcolor="#ACC8F0" ';
    }
    else
    {
        $hintergrundfarbe = ' bgcolor="#DDE8F9" ';
    }
    return ( $hintergrundfarbe );
}
?>

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