Geburtstagskalender

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Geburtstagskalender

    Ok... Dieser Thread bezieht sich auf den vorhergehenden Monster Thread (http://www.php-resource.de/forum/showthread.php?threadid=3241)

    Das Problem ist folgendes: Ich habe mit Hilfe von euch einen Geburtstagskallender gebastelt, dessen source ich mal hinten anhänge.

    Die URL zum anschauen des ganzen, um sich ein Bild zu machen ist folgende: http://www.abi01.de/hgr

    Der Kalender funktioniert soweit einwandfrei, es gibt nur zwei Ausnahmefälle, die ich gerne noch hinkriegen würde:

    1. wenn zwei / bzw. max 3 Leute am gleichen Tag geburtstag haben, sollen diese Leute am Tag des Geburtstags nur in der Mitte angezeigt werden, also nicht in der Liste: "Als letztes hatten Geburtstag" --> Siehe testpersonen auf der url.

    2. wenn zwei/ max 3 Leute am gleichen Tag geburtstag haben, wird nur die erste person angzeigt unter: Heute hat geburtstag...

    wer kann mir weiter helfen????

    Hier der COde...

    danke schon mal im Vorraus:

    ---------------------------------

    <?php
    $heutejahr = date("Y",time());
    $heute = date("d.m.Y",time());
    $timerer = date("m",time());
    $timererer = date("d",time());
    $timestamp = mktime(0,0,0,$timerer,$timererer,$heutejahr);
    $conn = mysql_connect("mysql.domainfactory.de", "...", "...");
    if ($conn)
    {
    mysql_select_db("...",$conn);
    $result = mysql_query("SELECT name, tag FROM jahrgangsstufe",$conn);
    $doedel=1;
    $anzahl=1;
    while($zeileholen=mysql_fetch_array($result,$conn))
    {
    $schueler[$anzahl]["name"] = $zeileholen["name"];
    $schueler[$anzahl]["tag"] = $zeileholen["tag"];
    $anzahl++;
    $doedel++;
    }
    $anzahl--;
    for ($i=1;$i<=$anzahl;$i++)
    {
    $datum = explode ("-",$schueler[$i]["tag"]); //splittet das Datum auf, wir brauchen nur tag und Monat
    $schueler[$i]["timestamp"] = mktime(0,0,0,$datum[1],$datum[2],$heutejahr); // jeder bekommt ein timestamp in diesem Jahr
    }
    for ($i=1;$i<=$anzahl;$i++)
    {
    $schueler[$i]["abgerechnet"] = $timestamp - $schueler[$i]["timestamp"]; // jetzt wird heute abgezogen
    }
    // so jetzt haben wir schonmal eine Liste , jetzt muss sie sortiert werden.
    // zuerst die postiven Absteigend, dann die negativen vom kleinsten an.
    // denn ddas geht dann ja von 31.12. runter auf heute.
    $positiv = 0;
    $negativ = 0;
    $heute = 0;
    for ($i=1;$i<=$anzahl;$i++)
    {
    if ( $schueler[$i]["abgerechnet"] > 0)
    {
    $positiv++;
    }
    if ( $schueler[$i]["abgerechnet"] < 0)
    {
    $negativ++;
    }
    }

    $dieshierzaehlt = 0;
    for ($i=1;$i<=$anzahl;$i++)
    {

    if ($schueler[$i]["abgerechnet"] == 0)
    {
    $reihenfolge[$dieshierzaehlt]["name"] = $schueler[$i]["name"];
    $reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$i]["timestamp"];
    $dieshierzaehlt++;
    }
    }

    for ($i=1;$i<=$positiv;$i++)
    {
    $momstand = 1000*24*60*60; // 1000 Tage gibt es nicht
    $aktuell = 0;
    for($n=1;$n<=$anzahl;$n++)
    {
    if ($schueler[$n]["abgerechnet"] > 0)
    {
    if ($schueler[$n]["abgerechnet"] < $momstand) // wir suchen den kleinsten Abstand zu heute
    {
    $momstand = $schueler[$n]["abgerechnet"];
    $aktuell = $n;
    }
    }
    }
    $reihenfolge[$dieshierzaehlt]["name"] = $schueler[$aktuell]["name"];
    $reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$aktuell]["timestamp"];
    $dieshierzaehlt++;
    $schueler[$aktuell]["abgerechnet"] = 0;
    }
    for ($i=1;$i<=$negativ;$i++)
    {
    $momstand = 0; // 1000 Tage gibt es nicht
    $aktuell = 0;
    for($n=1;$n<=$anzahl;$n++)
    {
    if ($schueler[$n]["abgerechnet"] < 0)
    {
    if ($schueler[$n]["abgerechnet"] < $momstand) // wir suchen die kleinste Zahl
    {
    $momstand = $schueler[$n]["abgerechnet"];
    $aktuell = $n;
    }
    }
    }
    $reihenfolge[$dieshierzaehlt]["name"] = $schueler[$aktuell]["name"];
    $reihenfolge[$dieshierzaehlt]["timestamp"] = $schueler[$aktuell]["timestamp"];
    $dieshierzaehlt++;
    $schueler[$aktuell]["abgerechnet"] = 0;
    }
    echo"<B><U>Als letztes hatten Geburtstag:</U></B><BR><BR>";
    for($i=0;$i<=2;$i++) // gibt die ersten drei aus, ist variabel !
    {
    echo $reihenfolge[$i]["name"]. " am <B>".date("d.M.Y",$reihenfolge[$i]["timestamp"])."</B><br>";
    }
    echo"<HR SIZE=\"1\">";

    $heute_geburtstag = mysql_query("SELECT name FROM jahrgangsstufe WHERE DAYOFYEAR(tag)=DAYOFYEAR(NOW())");
    while($row = mysql_fetch_array($heute_geburtstag))
    { $geburtstagskind = $row[0]; }
    if (!$geburtstagskind)
    {
    echo "<FONT COLOR=\"FF0000\">Heute, am <B>"; echo date("d.m.y"); echo "</B> feiert niemand aus unserer Jahrgangsstufe Geburtstag. <BR></FONT>";
    echo "<HR SIZE=\"1\">";
    }
    else{
    echo "<FONT COLOR=\"FF0000\">Heute, am <B>"; echo date("d.m.y"); echo "</B> feiert $geburtstagskind Geburtstag. [<B>HAPPY BIRTHDADY!</B>] <BR></FONT>";
    echo "<HR SIZE=\"1\">";}

    echo"<B><U>Als nächstes haben Geburtstag:</U></B><BR><BR>";

    for($i=$anzahl-1;$i>=$anzahl-3;$i--) // gibt die letzten drei aus, ist variabel !
    {
    echo $reihenfolge[$i]["name"]." am <B>";
    echo date("d.M.Y",$reihenfolge[$i]["timestamp"])."</B><br>";
    }


    }

    ?>

    ---------------------------------
Lädt...
X