Om jag inte minns fel så var det precis detta som diskuterades här:
http://cgi.webforum.nu/wf/Forum11/HTML/002574.html
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
4 svar · 270 visningar · startad av i-or
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
Om jag inte minns fel så var det precis detta som diskuterades här:
http://cgi.webforum.nu/wf/Forum11/HTML/002574.html
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
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.
<%
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
------------------
//voigtan
:: voigtan.org
"de går inte att lära en gammal norrläning byta namn på irc" - gammalt kinesiskt uttryck
[Redigerat av voigtann1 den 25 nov 2001]
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.
------------------
essentitia preter non sans multiplicandum