Ålder Söknings problem

ASP

6 svar · 185 visningar · startad av ConnyFox

Medlem sedan aug. 20011 087 inlägg
Trådstart#1

Jo det är på detta viset att jag har gjort en liten sökmotor för att söka i medlemsdatabasen. jag har 5 fält o allt funkar fin fint förutom det femte.

När man ska söka på ålder och skriver in t.ex 17 så går det ju inte matcha med databasen där deras födelsedatum är lagrat istället för antal år.

men det borde ju på något vis gå att se till att den räknar ut mindatum och maxdatum för en viss ålder och sedan söker på det i databasen..

Min sql-sats för sökningen ser ut såhär

SQL = "SELECT * FROM members WHERE namn LIKE '%" & request.form("namn") & "%' AND nick LIKE '%" & request.form("nick") & "%' AND efternamn LIKE '%" & request.form("efternamn") & "%' AND alder LIKE '%" & request.form("alder") & "%'"

Jag kan ungefär NOLL om datum o sådant så om någon har en färdig kodsnutt som löser detta vore jag evigt tacksam :o)

Medlem sedan feb. 20012 412 inlägg
#2

Hej, du kan använda en funktion som heter Datediff som räknar ut skillnaden mellan 2 datum.

DateDiff(interval, date1, date2)

I detta fallet blir intervallet yyyy för du har följande översättningar:

yyyy --> Year
q --> Quarter
m --> Month
y --> Day of year
d --> Day
w --> Weekday
ww --> Week of year
h --> Hour
n --> Minute
s --> Second

Alltså:

DateDiff("yyyy", date1, date2)

ger dig antal år mellan de två datumen:

DateDiff("yyyy", det_aktuella_datumet, Now())

borde lösa problemet med att räkna ut åldern.

mvh Jörgen :)

Medlem sedan aug. 20011 087 inlägg
#3

Ok.. men fattar inte hur jag ska använda det till mitt problem bara ;)

Medlem sedan feb. 20012 412 inlägg
#4

Jag vet inte hur du har lagt upp det. Kan användaren själv välja vad denna kan skriva i åldersfältet?

Jag hade antingen haft färdiga selectfält där man kan kombinera ihop ett födelsedatum eller ett fält där man kan välja en ålder.

Annars får man göra en koll på vad han/hon skrivit och anpassa sökningen därefter.

mvh Jörgen :)

Medlem sedan aug. 20011 087 inlägg
#5

Mjo men om jag har 3 select fält måste man ju matcha in precis på dagen. man kanske vill söka fram alla som är 17 år ;) Som det är nu har jag ett vanligt input fält där man kan skriva vad man vill, inte så smart kanske men hur ska jag annars göra?

i databasen är deras födelsedatum lagrade!

Medlem sedan feb. 20012 412 inlägg
#6

Hej, du kan ju bygga upp att du söker på personnummret istället. Gör en dropdown som anger en massa födelseår. Sedan får man välja ett födelseår istället, så kan du bygga upp hämtningen likt denna som får anpassas efter fälttyp och databastyp:

sql = "select * from tabellen where year(date_field) = " & request.form("year")

RED: glömde att tanken var att formatet på födelse-fältet var: 2002-01-02

Finns kanske smidigare lösningar :)

mvh Jörgen

Medlem sedan aug. 20011 087 inlägg
#7

Mjo det där lär nog inta funka värstans bra för mig ;)

249 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)