Seite 1 von 1

Geburtstags-Script

Verfasst: 25.11.2002 00:53
von Condor
Hi, kann mir jemand bei folgendem script helfen ? Ich möchte das das Script die Geburtstage aus meiner DB holt und mit dem aktuellen Datum vergleicht. Wenn eine Übereinstimmung vorhanden ist, soll auf der Seite z.B folgendes stehen: "Herzlichen Glückwunsch Manfred Sommer, du wirst heute 33 Jahre alt". Wie mache ich sowas, hat jemand einen Tip einen Codesnipsel oder wenigstens eine anregung ? Danke im voraus.

Verfasst: 25.11.2002 01:08
von Jensemann
Hi

Dafür gibt es schon einen hack, suchmal nach birthday mod. Ansonsten dürfte da das einfachste sein das datum in der db dieser art zu speichern:

28-12-1982 (ist jetzt mein beispiel)

anschliessend das aktuelle datum in form bringen, von beiden mit substr die ersten 5 zeichen absebeln und vergleichen.

Das alter kannst du dann einfach durch aktuelle jahr - gespeichertes jahr rausfinden. Wenn ich aber so drüber nachgrüble könnte es sinnvoller sein die stellen getrennt in der db zu speichern dann kannst du direkt danach abfragen, also

SELECT * FROM geburtstage WHERE day=$day AND month=$month ORDER by year DESC

So würdst du alle user bekommen dessen geburttag auf day=$day und month=$month fällt, geordnet nach der grünheit der Ohren, also die jüngsten zu erst.

Datumsfunktionen und ihre handhabung verät dir das php manual auf http://php.net sicherlich gerne.

Mfg
Jens Gutzeit

Verfasst: 26.11.2002 02:31
von Condor
Hallo,
danke für deine Hilfe. Ich habe das jetzt so gelöst, hier mein Testscript:

Code: Alles auswählen

<?php include("open.inc.php");

$day = date("d");
$month = date("n");
$year = date("Y");

$sql = "SELECT * FROM birth WHERE tag=$day AND monat=$month ORDER by jahr DESC";

$result = mysql_query($sql, $conn);
if ($result) {
   while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
      echo "Heute hat ".$row['name']." Geburtstag. ";
      $ay = $year - $row['jahr'];
      echo "Er wird heute ".$ay." Jahre alt <BR>";
   }
} else {
   echo "<P>".mysql_error($conn);
}
mysql_close($conn);
?>
Also bei mir läuft es ohne Probleme, sind da aber vielleicht doch Fehler drin oder sollte man etwas nicht machen ?

Verfasst: 26.11.2002 04:06
von Jensemann
Hi

Sieht gesund aus, herzliches Glückwunsch, du hast die php date funktionen begriffen, das sieht man selten genug.

Ich empfehle aber $day und $month im query in ' ' zu setzen. Geht zwar auch so, aber ich auch schonmal gesehen das diese müll ausspucken, dann bist du auf der sicheren seite.

Generell sollten die werte immer in ' ' rein, sicher ist sicher. Wenn ich es nicht mache ist das weil mein coding stil auch zur hälfte verhunzt ist von PHP.

Mfg
Jens Gutzeit

Verfasst: 27.11.2002 00:55
von Condor
Hi,
vielen Dank für deine Mühe und Hilfe.