Alter + 1 wenn User geburtstag hat

skype20

Mitglied
Hallo ich bins wiedermal, diesmal aber mit einem kleinen Problem es geht wie der Titel schon sagt um Alter + 1 wenn User geburtstag hat . Ich habe es geschaft dass das Alter eines Users in die Tabelle User in der Spalte age gespeichert wird. Aber nun ist mir aufgefallen das wenn der User geburtstag hat dass das Alter nicht um 1 erhöht wird. Hat irgendeiner eine Lösung so perat :D ? kann auch ganz einfach erklärt sein ohne großartig den Code reinzuposten. Ich habe mir lange den Kopf zerbröselt und habe mir einen eventuelenl Lösungsvorschlag gebastelt der würde so klingen.

Wenn Gerburtstagsdatum User = Datum Heute

dann alter + 1

Ich weiß aber nicht ob das so richtig wäre bzw. elegant

mfg

skype20
 
Ein Update in dem du nicht das Alter hochzählst, sondern neu berechnest ist immer sauberer. Da besteht keien Gefahr, wenn du es per Zufall 2 mal laufen lässt....

SQL:
UPDATE mytable
SET `alter` =  TIMESTAMPDIFF(YEAR, `geburtsdatum`, SYSDATE())
 
Zuletzt bearbeitet von einem Moderator:
Dankeschön jetzt hätte ich noch ne frage ich bin die ganze Zeit am rätseln wie ich am besten die Bedingung setzte , ab wann das Alter in der Tabelle user eingetragen wird bzw. upgedatet wird. Ich habe es mal so versucht:
PHP:
if($_GET['userID'])
{UPDATE mytable SET `alter` =  TIMESTAMPDIFF(YEAR, `geburtsdatum`, SYSDATE())}

Aber wie sich rausgestellt hat, muss der User erst auf seine eigen Profilseite raufgehen damit das Alter in der Tabelle User eingetragen wird.Jetzt fällt mir nicht ein wie ich das besser machen könnte hättest du vllt. einen Vorschlag für mich ?


mfg

skype20
 
Hi,

ich würde zwar eher dazu greifen, das Alter per SQL-Anfrage vom Geburtstag zu errechnen, aber eine Spalte mit dem Alter an sich ist auch teilweise performanter.

Zu deinem Problem:
Ich würde das mit einem Cronjob lösen, der einmal an Tag läuft und bei allen die an dem Tag Geburtstag haben das Alter um eins erhöht.

Gruß
BK
 
Danke ,

Das Alter per SQL-Anfrage zu ermitteln hatte ich auch überlegt aber umso komplexer wäre mein Datenfilter geworden der die User nach dem Alter filtert. Ja von Cronjob habe ich schonmal was gehört.Werde dann mal schauen ob es so funktioniert :D
 
Kompliziert? Nö


Abfrage aller User mit dem Alter 30
SQL:
SELECT *
FROM user
WHERE TIMESTAMPDIFF(YEAR, `geburtsdatum`, SYSDATE()) = 30;
 
Zuletzt bearbeitet von einem Moderator:
oh thx aber ich weiß jetzt nicht wie ich die Bedigung setzen soll sprich ab wann das Alter des Users eingetragen wird. Das Alter 100 bekommt jeder User der sich angemeldet hat. Ich habe daran gedacht sobald der User online ist bekommt er, in der Spalte Alter sein Alter eingetragen aber da der User zu diesem Zeitpunkt keine Möglichkeit hat sein Geburtsdatum einzutragen wird das Alter 0 in die Tabelle Alter gespeichert und das will ich verhindern ! . Habt ihr Vorschläge für mich wie ich das fixen kann ?

gruß

skype20
 
Zurück