Geburtstags-Script

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Geburtstags-Script

Beitrag 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.
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag 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 ?
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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
Condor
Mitglied
Beiträge: 221
Registriert: 27.02.2002 01:00
Wohnort: Ahlen

Beitrag von Condor »

Hi,
vielen Dank für deine Mühe und Hilfe.
Antworten

Zurück zu „Coding & Technik“