webForumDet fria alternativet

Avancerad sök....

ASP

5 svar · 298 visningar · startad av phazer23

Medlem sedan feb. 2001256 inlägg
Frågan#1

Har en fråga angående en lite mer avancerad sökfunktion. Som jag har de nu så skriver personen in nått han vill söka efter typ Lotta Andersson. Men ifall nån registrerat sig med typ omvändordning typ Andersson Lotta, så kommer ju inte resultatet fram. Vill alltsp få så att den söker på allt i databasen även omvänt.. Så skriver du Lotta Andersson så skall den söka både Lotta Andersson och Andersson Lotta . Tror nog att det behövs array för att fixa detta men är tyvärr itne så hemma på detta utan har mer "grundläggande" kunskaper i asp. Nån som kan ge mig lite tips och kanske en provsnutt med kod.?

Medlem sedan dec. 200012 464 inlägg
#2

if  request.form("search") <> "" then
words = split(request.form("search"))
where = "where ( yourColumn like '"

for i = 0 to ubound(words)
    where = where & "%" & words(i) & "%"
next
where = where & "') or ( yourColumn like '"

for i = ubound(words) to 0 step -1
    where = where & "%" & words(i) & "%"
next
where = where & "')"
else
where = ""
end if
sql = " select * from yourTable " & where

Jag tycker att det är bättre om du ser till att uppgifterna lagras på ett enhetligt sätt. Dels för att förenkla sökningen och dels för att kunna tolka uppgifterna korrekt.

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 14 aug 2001]

Medlem sedan dec. 19995 874 inlägg
#3

Tja, du kan ju kanske göra så att du splittar variabeln vid varje space... exempelvis:

arr = split(request.form("search"), " ")
attTot = UBOUND(arr) + 1

Sedan kan du ju loopa detta för att få fram en bra fråga...

For i = 0 to arrTot
if tSQL = "" Then
tSQL = "namn like %" & arr(i) & "% "
else
tSQL = tSQL & "AND namn like %" & arr(i) & "%"
end if
Next

sedan kör du exempelvis frågan..

connection.execute("Select * from namn where" & tSQL)

Reserverar mig för grova fel :)

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

Medlem sedan jan. 2001332 inlägg
#4

Är det inte bättre att lagra för och efternamn i olika kolumner i databasen...
Då slipper du detta problem....
:e

------------------
Du lever bara en gång och den gången är nu!

Medlem sedan juni 20008 205 inlägg
#5

Jag är hågad att hålla med föregående talare.

------------------
"There's no such thing as a stupid question, only stupid people"

Medlem sedan feb. 2001256 inlägg
#6

Problemet är att det inte är jag som gjort databasen utan det är en jättedatabas från Play Nöje som innehåller alla skivor som finns utgivna i sverige och dom har fu..at upp den och inte varit konsekventa med förnamn respektive efternamn.

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)