WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik


Homepage und Webhosting-Forum

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.


Forum » PHP & MySQL » Mysql Abfrage nach Geburtsdatum » Antworten
Benutzername:
Passwort: Passwort vergessen?
Inhalt der Nachricht: Fett | Kursiv | Unterstrichen | Link | Bild | Smiley | Zitat | Zentriert | Quellcode| Kleiner Text
Optionen: Emailbenachrichtigung bei Antworten
 

Die letzten 5 Postings in diesem Thema » Alle anzeigen
von m3rlin
Hallo svenolo,

eine DAY-Funktion gibt es gar nicht. Probiers mal mit DAYOFMONTH
von Ticonderoga
Hi, also, ich hätte hier eine Lösung.

Ich meine, dass es am sinnvollsten ist, derartige Datum-Angaben als Klartext und nicht als Timestamp zu speichern, weil es Dir, wenn du die Relation (Tabelle) manuell administrierst sowieso ein besseres vorstellungsvermögen liefert, da die meisten Menschen, inklusive mir, bei timestamps immer Probleme haben, das Datum auf unseren Kalender zu übertragen. Egal, zurück zum Thema:

Also, nehmen wir an, Du speicherst die Geburtstage in der Form YYYY.MM.DD so ab.

Dann könntest Du eine SQL-Anfrage beispielsweise so formulieren:

$sql="SELECT k.name, k.vorname, k.email FROM kunde k WHERE k.geburtsdatum LIKE '%".date("m.d", time())." ' ";

Ich habe es jetzt nicht ausprobiert, aber es dürfte funktionieren. wenn Du den LIKE-Operator verwendest, dann ist das %-Zeichen ein Wildcard, welches für beliebig viele Zeichen davor - in unserem Fall also das Jahr - steht.
von svenolo
Hallo,
Ich möchte alle Kunden aus einer Datenbank auslesen die am heutigen Tag Geburtstag haben.
Folgende Abfrage an die MySQL-Datenbank:

$result=mysql_query('SELECT * from kunde where MONTH(Geburtsdatum)=MONTH(NOW()) order by Name');

Damit habe ich sämtliche Kunden, die in diesem Monat Geburtstag haben, soweit so gut.
folgende Abänderung sollte normalerweise auch alle die raussuchen, die eben genau an diesem heutigen Tag Geburtstag haben:

$result=mysql_query('SELECT * from kunde where MONTH(Geburtsdatum)=MONTH(NOW()) and DAY(Geburtsdatum)=DAY(NOW()) order by Name');

Aber aus irgendeinen Grund funktioniert die DAY()-Funktion gar nicht, habe es auch schon einzelnd ohne den ganzen Glimm Bimms herum probiert.Leider nix.

Ich habe dann auch versucht mir zunächst mittels der ersten Abfrage alle Kunden zu holen, die in diesen Monat Geburtstag haben, um dann in PHP aus der Variablen $ds[Geburtsdatum] irgendwie den Tag rauszuziehen, aber auch dass klappte nicht, wäre aber auch unnötig umständlich. Man muss das in MySQL doch schon realisieren können. Hängt wohl irgendwie mit dem Datenbanksystem zu tun, aber ein Funktion DAY() muss es doch immer geben oder?

Nach oben