I
itsnogood13
hallöchen... i habe nen kleines problem mit einem geburtstagsscript... es funktioniert zwar soweit ganz gut, nur leute, die vor 1969 geboren sind, werden alle als geburtstagskinder angezeigt und sind alle 37 jahre alt...
die geburtsdaten lese ich aus einer textdatei (geburtstage.txt) aus und habe diese im format name:JJJJ.MM vorzuliegen...
da ich net so die ahnung von datenbanken habe, würde es mich sehr freuen, wenn jemand eine lösung für mich hat, mit der ich weiterhin die textdatei als "quelle" nutzen kann...
hier nun mein quellcode...
i bedanke mich jetzt schonmal für eure antworten...
die geburtsdaten lese ich aus einer textdatei (geburtstage.txt) aus und habe diese im format name:JJJJ.MM vorzuliegen...
da ich net so die ahnung von datenbanken habe, würde es mich sehr freuen, wenn jemand eine lösung für mich hat, mit der ich weiterhin die textdatei als "quelle" nutzen kann...
hier nun mein quellcode...
PHP:
<?
setlocale(LC_ALL, "deu_deu");
$geburtstagskinder = verarbeite_geburtstagsdatei("geburtstage.txt", 7, 14);
if ($geburtstagskinder)
{
for ($f=0; $f<count($geburtstagskinder); $f++)
{
$val = $geburtstagskinder[$f];
echo "Wir " . "gratulieren " . $val["name"] . " zum " . "<strong>" . $val["age"] . "</strong>" . " Geburtstag! " . "<br>";
}
}
else
echo "Heute hat niemand Geburtstag!" . "<br>";
function verarbeite_geburtstagsdatei($datei, $zeitraum_vor, $zeitraum_danach)
{
$counter = 0;
$geburtstage = file($datei);
foreach ($geburtstage as $key => $data)
{
$vals = explode(":", $data);
if (count($vals)>1)
{
$name = $vals[0];
$bday = string2stamp($vals[1]);
$date_start = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) - $zeitraum_vor * (1 * 60 * 60);
$date_end = mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)) + $zeitraum_danach * (1 * 60 * 60);
if (($bday > $date_start) && ($bday < $date_end))
{
$age = date("Y") - date("Y", mktime(0, 0, 0, date("m"), date("d"), date("Y", $bday)));
$datum = strftime("%#d. %B", $bday);
$geburtstagskinder[$counter]["name"] = $name;
$geburtstagskinder[$counter]["age"] = $age;
$geburtstagskinder[$counter]["datum"] = $datum;
$geburtstagskinder[$counter]["tstamp"] = mktime(0, 0, 0, date("m", $bday), date("d", $bday));
$counter++;
}
}
}
$geburtstagskinder = sort_array($geburtstagskinder, "tstamp");
return $geburtstagskinder;
}
function string2stamp($string)
{
$date = explode(".", $string);
return mktime(0, 0, 0, $date[1], $date[2], $date[0]);
}
function sort_array($array, $sortby, $order=1)
{
$arr = &$array;
$count = 0;
for ($f=0; $f<count($arr); $f++)
{
$sort[$count] = $arr[$f][$sortby];
$count = $count + 1;
}
if ($order==1) @asort($sort);
if ($order==-1) @arsort($sort);
@reset($sort);
$count = 0;
while (list($key, $val)=@each($sort))
{
$new_arr[$count] = $arr[$key];
$count = $count + 1;
}
return $new_arr;
}
?>
i bedanke mich jetzt schonmal für eure antworten...