Suchfunktion

hotflirty

Mitglied
Hallo zusammen,

ich habe da mal eine Frage:

ich baue an der Seite http://www.hotflirty.de an einer Suchenfunktion.
Nun habe ich in meiner SQL Datenbank ein Textfeld mit dem Datum in Form XX.XX.XXXX stehen. Zu jedem User quasi sein Geburtsdatum. Ich möchte den Usern ermöglichen, dass sie Benutzer suchen können und die Suche nach dem Alter einschränken können ( z.B. 20-25 Jahre alt).

Wie kann ich das am geschicktesten machen. Den Datenbankeintrag brauche ich wo anders im Script in dieser Form (es müsste wenn man das ändern will an zuvielen Stellen gebaut werden...)

Danke schoneinmal im Voraus.
Kai
 
Naja , wenn du 2 Altersgrenzen (oben und unten 20-25) hast, dann musst du erstmal ausgehend vom aktuellen Datum die Geburtstagsgrenzen berechnen: Also Heute - 20 Jahre und Heute-25 Jahre

Ich hab das mal so gemacht: (KA ob das einfacher geht)

mit der Funktion: strtotime() laesst sich ein Unix Timestamp erzeugen.
Der Witz dabei ist, dass das auch mit "verschiebung" geht, also:

liefert z.B.

strtotime("+1 day")

den unixtimestamp von morgen.

doku-> http://de2.php.net/manual/de/function.strtotime.php

Diesen kannst du dann mit der date() funktion in dein passendes Format bringen.

date("d-m-Y",$deinberechneterunixtimecode)

Nun haste 2 Daten , nennen wir sie $max und $min (20 jahre bzw 25)
Und damit kannste nun in der DB suchen Nach dem Schema:
Select * FROM deine_tabelle WHERE geburtstdatum >$min AND geburtstdatum< $max.

Ich denke , so sollte es funktionieren :)

Gruß
Frank
 
ah sehr genial, das hat mir gefehlt, perfekt, ich werds gleich heute abend mal probieren umzusetzen! DANKE!


KAI
 
Original geschrieben von BeaTBoxX
Naja , wenn du 2 Altersgrenzen (oben und unten 20-25) hast, dann musst du erstmal ausgehend vom aktuellen Datum die Geburtstagsgrenzen berechnen: Also Heute - 20 Jahre und Heute-25 Jahre

Ich hab das mal so gemacht: (KA ob das einfacher geht)

mit der Funktion: strtotime() laesst sich ein Unix Timestamp erzeugen.
Der Witz dabei ist, dass das auch mit "verschiebung" geht, also:

liefert z.B.

strtotime("+1 day")

den unixtimestamp von morgen.

doku-> http://de2.php.net/manual/de/function.strtotime.php

Diesen kannst du dann mit der date() funktion in dein passendes Format bringen.

date("d-m-Y",$deinberechneterunixtimecode)

Nun haste 2 Daten , nennen wir sie $max und $min (20 jahre bzw 25)
Und damit kannste nun in der DB suchen Nach dem Schema:
Select * FROM deine_tabelle WHERE geburtstdatum >$min AND geburtstdatum< $max.

Ich denke , so sollte es funktionieren :)

Gruß
Frank

soweit so gut, bis zur Select Abfrage funktionierte das wunderbar, nur die Abfrage von > und < auf ein Textfeld wird irgendwie nix - ich muss wohl oder übel das Feld in MYSQL umformatieren (oder hat jemand noch eine Idee wie ich die die Variabele (hier) $min in der sql datenbank überprüfe ob sie nun grösser oder kleiner ist, wobei der mysql feld ein textfeld ist

kai.
 
Aender das Feld, das das Datum speichern von Text auf Datetime, dann geht das auch. Ist ohnehin unsinnig, ein Datum als Text zu speichern
 
Original geschrieben von Zatic
Aender das Feld, das das Datum speichern von Text auf Datetime, dann geht das auch. Ist ohnehin unsinnig, ein Datum als Text zu speichern

jo danke nochmal, ich werd das jetzt so machen, anders wirds nicht gehen, das heisst für mich halt nur alle abfragen auf das feld um zu ändern die es bis jetzt schon gibt, aber was solls ;-) danke nochmal

kai
 
Zurück