Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Alter in der Datenbankabfrage errechnen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
02.08.2005, 02:28 Uhr
Donar



Also, für eine suchfunktion muss ich natürlich das gesuchte alter mit dem alter aller Benutzer vergleichen. es gibt lediglich das problem, dass in der datenbank das Geburtsdatum eingetragen wird. Es steht darin im Format TT.MM.JJJJ!

So, eine Funktion die das alter errechnet habe ich bereits geschrieben. ich muss das Alter jetzt nur in der Datenbankabfrage errechnen. Also müsste was in der abfrage stehen wie:

(m_age LIKE '%".$_GET["min"]."%')

in m_age steht das Geburtsdatum und in $_GET["min"] steht ein Alter!

also steht in m_age beispielsweise 28.02.1985 und in $_GET["min"] 20. Diese beiden sachen sollten jetzt als gleich erkannt werden. Also muss das alter errechnet werden.

Müsste dies für einen bestimmten benutzer geschehen wäre das ja kein problem aber da alle Zeilen der Benutzer rausgesucht werden müssen die das genannte alter haben kann ich das ja schlecht außerhalb der Abfrage machen ...

naja, ich denke man kann verstehen wir ich das meine und ich hoffe mir kann da jemand helfen.

MfG
Donar

Dieser Post wurde am 02.08.2005 um 03:06 Uhr von Donar editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.08.2005, 10:06 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


schreib die Geburtstage als timestamp in die db, dann kannste einfach UNIX_TIMESTAMP()-m_age < alter*365 schreiben
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.08.2005, 13:28 Uhr
Donar



Wenn das mal so einfach wäre! Das script ist bereits fertig und es wird überall mit diesem Eintrag ausgelesen. Ich wollte dieses script lediglich um einige punkte erweitern.

Kaum zu glauben, dass man für ein solches Script 99 EUR zahlen soll. Wenn man eine Lizenz hat ist die Weitergabe erlaubt, deshalb hab ich es gratis bekommen aber es ist einfach nur schlecht geschrieben ...

Edit: Aber wenn ich noch ein feld zusätzlich hinzufüge, wie lese ich das dann bei der Registration als Timestamp ein, wenn es im Format TT.MM.JJJJ vom User eingegeben wird??

MfG
Donar

Dieser Post wurde am 02.08.2005 um 13:45 Uhr von Donar editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.08.2005, 14:41 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja du kannst es natürlich auch folgendermaßen machen:


PHP 4:
$alter_stamp = time() - $alter*365;
$alter_date = date("d.m.Y", $alter_stamp);



und dann mit deiner methode, nur ka ob das sql das mit LIKE entsprechend macht was du willst
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.08.2005, 15:00 Uhr
Donar



ähhm, wenn ich es so machen sollte, wie bekomm ich das dann in die Datenbankabfrage rein??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.08.2005, 16:25 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



SQL:

m_age LIKE '%".$alter_date."%'


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
02.08.2005, 16:33 Uhr
Donar



Aber dann vergleiche ich doch ein Datum mit einem 2ten generiertem Datum. Das generierte Datum wird doch niemals gleich mit dem in der Tabelle sein ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
02.08.2005, 16:34 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


dann ändere das script so um das es nen timestamp als geburtsdatum speichert, das ist dann das einfachste
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.08.2005, 16:36 Uhr
Donar



Jo, denke auch, dass es das einfachste ist! wie kann ich ein datum das im Format TT.MM.JJJJ eigegeben wird denn als Timestamp in die Tabelle schreiben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.08.2005, 19:00 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


z.b mit strtotime kannste es umwandeln, im notfall vorher mit str_replace aufs richtige format bringen (schau im php-manual nach dazu)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: