Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Geburtstagskalender [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Geburtstagskalender


 
Larsidotnet
14-03-2002, 09:55 
 
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>";
}


}

?>

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:21 Uhr.