automatischer Geburtstagsgruß

uwee

Erfahrenes Mitglied
Hallo@all...

Wie der Titel schon sagt, möchte ich auf einer Seite einer Homepage einen automatischen Geburtstagsgruß generieren.
Ich habe eine Liste mit Personen und Geburtsdaten in einer MySQL-Tabelle und möchte nun, wenn "Peter" am 01.01.2007 jetzt Geburtstag hat eine meldung bekommen.
Weit bin ich leider noch nicht gekommen, da mir einfach nicht einfallen will, wie ich die Daten aus der Tabelle mit dem aktuellen Timestamp vergleichen soll.
Bsp:
Peter: 01.01.1986
Wie stelle ich es an, dass am 01.01.2007 eine Meldung kommt?

Für jede HIlfe wäre ich echt dankbar.

UweE
 
Möchtest du den Hinweis bekommen oder soll er ihn beim Besuch der Webseite bekommen? Soll er ihn als E-Mail erhalten, falls er zum Geburtstag nicht auf die Seite kommt oder sollen lediglich alle Geburtstagskinder des Tages wie hier im VB angezeigt werden?
 
also ich möchte am besagten Tag einfach auf der Hauptseite ne Nachricht haben:
"Wir gratulieren $name heute ($datum) zum Geburtstag"

ich kann das Datum als varchar oder eben date verwenden.
 
Hi,

PHP:
$tag=date("d");
$monat=date("m");
$year=date("Y");

$datum= "0,0,0,".$monat.",".$tag."";
$tage=(mktime(0,0,0,8,27) - mktime($datum)) / 86400;
das erste mktime beinhaltet das geburtsdatum (ohne Jahr) und das zweite das aktuelle datum (auch ohne Jahr). das ganze dann durch 86400 damit du die Tage bekommst, und dann weisst du wieviele Tage es noch sind.

Wenn du einfach nur wissen willst ob eine Person geburtstag hat, kannst du auch eine if-abfrage machen

PHP:
$date= date("d.m");

if ($date=="27.08")
echo "Herzlichen Glückwunsch";

Das ganze nur mal so als denkanstoß, kannste ja beliebig erweitern und ausbauen.
hoffe ich konnte helfen

mfg
Daniel
 
Er hat die Daten ja in einer Tabelle ;)

So kriegst du alle Geburtstagskinder des Tages:

PHP:
  $geburtstage = mysql_query("
  SELECT
     `name`,
    DATE_FORMAT(`datum`,'%d.%m.%Y') AS gebi,
    (YEAR(CURRENT_DATE) - YEAR(`datum`)) - "."(RIGHT(CURRENT_DATE,5) < RIGHT(`datum`,5)) AS age
  FROM `tabelle`
  WHERE DAYOFMONTH(`datum`) = DAYOFMONTH(NOW()) AND MONTH(`datum`) = MONTH(NOW())"));
So bekommst du die tagesaktuellen Geburtstage aller User und ihre Alter.

Wenn du alle Geburtstagskinder des aktuellen Monats möchtest, dann gehts so (einfach die Where-Klausel oben ersetzen:
PHP:
  WHERE MONTH(`datum`) = MONTH(NOW())
 
Es geht auch wesentlich einfacher/übersichtlicher. ;)
PHP:
<?php
mysql_connect("localhost","*****","*****") or die(mysql_error());
mysql_select_db("datenbank") or die(mysql_error());
 
$result = mysql_query("SELECT `username`, `geburtsdatum` FROM `tabelle` WHERE `geburtsdatum` LIKE '".date("d.m")."%' ORDER BY `user_name`") or die(mysql_error());
 
while($row = mysql_fetch_array($result)) {
    echo "Wir gratulieren ".$row['user_name']." heute (".date("d.m.Y").") zum Geburtstag.<br>";
}
?>
 
Zurück