Zum Inhalt springen

Nächster Geburtstag


Empfohlene Beiträge

Hallo!

würde gerne eine Anzeige auf meiner Website einbauen, die den nächsten Geburtstag eines Users anzeigt...

"Next Birthday: XXXXXX (7.8.)"

Wie bekomme ich das mit einem SQL-Abfrage gescheit hin??

Danke im vorraus...

oscha

:hawk

*edit* in meiner mysql-datenbank sind die datumsangaben als datum gespeichert, NICHT als timestamp

Link zu diesem Kommentar
Auf anderen Seiten teilen

hi,

hab ich das richtig verstanden:

in deiner db gibt es meinetwegen eine tabelle user ( name, geburtstag ).

und jetzt willst du anzeigen, wann der user wieder geburtstag hat.

kannst du da net sagen:

SELECT geburtstag FROM user

wie ist das denn in der tabelle abgespeichert? nur als 10.05 oder 10.05.1980?

wenn das datum in diesem format abgespeichert ist: xx.xx.xxxx dann würd ich mit regular expressions einfach monat und tag rausfiltern und dann eben noch das aktuelle jahr dahinter setzen.

was verwendest du php oder perl??

korea1

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

du gehst einfach hin und sortierst deine Tabelle nach dem Feld "Datum" und dann lässt du dir das erste Feld anzeigen. Dies dürfte dann der nächste Geburtstag sein...oder? Hab mal so nen kleines Forum programmiert - für: Neuster Eintrag ganz oben anzeigen...:)!

Sebastian

Link zu diesem Kommentar
Auf anderen Seiten teilen

hmm....

mal überlegen

ich weis nich obs klappt, aber ich würds wohl in etwa so versuchen:

Achso, ich hab grad vergessen wie die genaue Syntax von to_date ist :(

SELECT to_date("datum","dd.mm"), datum - sysdate FROM user --Geburtstag in DD.MM Format und die anzahl der tag bis dahin

WHERE row_id=1 --Alle Gebs. für den Zeitraum 1 Jahr

and row_id = 1 --Es wird nur die erste Zeile ausgegeben, ggf. ist es "and row = 1" bin mir nich ganz sicher

order by datum - sysdate inc --Es wird so sotiert das der kleinste wert, also der nächste Geb. ganz oben steht (es wird ja nur die erste zeile ausgegeben)

Das nur der Name angeigt wird machst einfach n paar "hidden" felder rein ;)

Um es nochmal grob zu beschreiben; "datum - sysdate" krallt sich die anzahl der tage bis zum jeweiligen Geburtstag, row_id lässt nur die erste anzahl anzeigen, der order by lässt den nächsten geb (durch datum - sysdate) in die erste zeile wandern

wenns dir unklar ist kann ichs nochmal anders erklären ;)

Mein Erklärstiel ist etwas ... eigenartige ^^

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

du gehst einfach hin und sortierst deine Tabelle nach dem Feld "Datum" und dann lässt du dir das erste Feld anzeigen. Dies dürfte dann der nächste Geburtstag sein...oder? Hab mal so nen kleines Forum programmiert - für: Neuster Eintrag ganz oben anzeigen...:)!

Sebastian

ich glaube nicht das das so funktioniert, ausser du machst in deinem select die einschränkung, dass du alle sätze ab heute suchst und nicht seit 1.1.

Bsp:


SELECT name from usertable where geburtstag >= aktuelles_Datum limit 1

ist dein geburtstags feld im datumformat?

Link zu diesem Kommentar
Auf anderen Seiten teilen

SELECT nickname,DATE_FORMAT(birthday,'%d.%m.%Y') from members ORDER BY birthday ASC LIMIT 1

Ich habe es mit folgendem probiert, jedoch wird bei dieser simplen abfrage nur ein geburtstag an jenem tag angezeigt.

das problem ist folgendes: wenn nun 2 oder mehr user an einem tag geburtstag haben, dann wird nur einer angezeigt

*edit*

die abfrage ist doch nichts, da mir wahllos die ersten beiden geburtstage in der DB ausgegeben werden :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

wenn ich zuhause bin, such ich dir den codeschnipsel mal raus. bin selbst in php noch anfänger. und: wenn zwei leute an einem tag geburtstag haben, dann kannste ja das mit ner if-abfrage überprüfen. wenn, der erste und der zweite datensatz (datum) gleich ist, dann musste du die ersten zwei geburtstagskinder ausgebene...! ich hoffe du verstehst was ich meine...;)!

sebastian

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also hier ist der Codeschnipsel mit dem es funktioniert hat:

$anfrage = mysql_query( "SELECT themenid,titel,autor,datum,antworten FROM `forum_themen` ORDER BY datum DESC LIMIT $seitenanzahlminus, $seitenanzahl" )

Datum (bzw. mit Uhrzeit) wird bei mir so gespeichert: 19.04.2004 22:17

Ich hoffe, ich konnte dir helfen.

Gruß

Sebastian

Link zu diesem Kommentar
Auf anderen Seiten teilen

hallo muth,

danke für deinen tipp, aber diese abfrage bringt nicht den nächsten geburtstag, sondern zeigt die ersten bzw. letzten (abhängig von der sortierung) geburtstag an - also wer als erster bzw. letzter geboren ist.

jemand ne andere idee?

Gruß

oscha

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...