söka flera ord...

ASP

4 svar · 290 visningar · startad av i-or

Medlem sedan nov. 2001294 inlägg
Trådstart#1

Jag har en enkel sökfunktion i mitt forum och använder detta i SQL:

WHERE Name LIKE '%" & Request.Form("searchwords") & "%'

Problemet är om man har skrivit in flera ord i formuläret, får man inget resultat även om alla orden finns korrekt, direkt efter varandra.

Hur gör jag för att kunna söka även med fler än ett ord?

Tack på förhand

Medlem sedan mars 2001243 inlägg
#2

Om jag inte minns fel så var det precis detta som diskuterades här:

http://cgi.webforum.nu/wf/Forum11/HTML/002574.html

Medlem sedan nov. 2001294 inlägg
#3

Du mindes nog fel eller var jag otydlig. Inget napp på den tråden alltså.

Jag vill alltså att man ska kunna söka på "Per Andersson", men som det är nu får man bara resultat om man söker på antingen "Per" eller "Andersson", även om det finns en "Per Andersson" i databasen.

Medlem sedan juni 20019 519 inlägg
#4
<%
bla = request.form("SOK_ORD")

set conn = server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("databasen.mdb")

sql = "select * from Tabell where Rubrik like '%" & bla & "%'"

set recset = conn.Execute(sql)
%>
Sök Resultat av "<%=request.form("bla")%>":<br>
<%
if recset.eof then
response.write "Det fanns inget som uppfyllde sökvillkoret"

else

Do Until recset.eof
response.write "<a href=spel.asp?ID=" & recset("id") & ">" & recset("Rubrik") & "</a><br>"

recset.MoveNext
loop
end if
%>

med denna kod jag använder kan man tex söka på:
Per And
Per
Per Andresson
Andersson

Men inte Perandersson

Medlem sedan dec. 200012 464 inlägg
#5

sql = "select * from t where 1 = 1 "
searchWords = split(request.form("searchWords")," ")

for i = 0 to ubound(searchWords)
sql = sql & " or name like '%" & searchWords(i) & "%'" 
next

Nu får du alla poster där något av sökorden finns med. Om du byter mot and så får du dom poster där alla orden finns med.

256 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)