webForumDet fria alternativet

Sökning i databasen.

ASP

13 svar · 1 603 visningar · startad av M.Cheraghi

Medlem sedan juli 20015 107 inlägg
Frågan#1

Hello :)

Detta har varit uppe många gånger, men Jag vet inte vad jag ska söka på :( Grejjen är att jag ska ha ett sökfält som man kan söka i database (Jag lovar, det är sant :e)

min kod hittills är:

strSearch = reqest.form("fastSearch")

strSQL = "SELECT * FROM tblUser WHERE username = '"& strUsername &"'"
Set RS = Conn.execute(strSQL)

Låt oss säga att jag söker på 'Anders' då vill jag att den skall Loopa ut 'Anders' men även 'Anders_den_coole' eller t.ex 'Coola_anders' Sen vill jag sortera upp dom i någon ordning, men jag vet inte vilket ordning själv ;) antagligen det som matchade bäst av alla :)

Någon som förstår? elelr vill nu har bättre förklaring? =)

Medlem sedan dec. 19996 522 inlägg
#2

Använd % tecken

Medlem sedan juli 20015 107 inlägg
#3

erka skrev:

Använd % tecken

Whieee, men hmmpf var? :r

Medlem sedan dec. 19996 522 inlägg
#4

username LIKE '%" & strUsername & "%'

Medlem sedan juli 20015 107 inlägg
#5

erka skrev:

username LIKE '%" & strUsername & "%'

Okej, ska ta en titt på det ;) tack :)
I'll be back :)

Medlem sedan juli 20015 107 inlägg
#6

Okej det verka fungera alldeles utmärkt :)
Tack så mycket för hjälpen :)

Medlem sedan juli 20015 107 inlägg
#7

Något bra tips på hur man ska sortera sökresultatet?
Just nu plockar den fram dom som las in i databasen först högst upp dvs äldre, men jag vill den som passade sökningen bäst, av något slag. Några tips? :)

Medlem sedan dec. 19996 522 inlägg
#8

Du skulle kunna slänga in allt i en array och sortera den efter en viss ordning tex. Lägg de som matchar exakt först i arrayen, och fyll sedan på den med de andra i bokstavsordning.

Medlem sedan dec. 200012 464 inlägg
#9

Hur definierar du

den som passade sökningen bäst

?

Exemplifiera gärna.

Medlem sedan juli 20015 107 inlägg
#10

LarsG skrev:

Hur definierar du

den som passade sökningen bäst

?

Exemplifiera gärna.

T.ex låt oss säga att följande finns i databasen

Erik
Erik_den_store
Erik_den_starke

Ok man söker på t.ex [Erik] ska den rada upp i följande ordning

Erik
Erik_den_starke
Erik_den_Store

men om jag t.ex söker på [den] och samtidigt har [den] och [den_där] i databasen vill jag rada upp som

Den
Den Där
Erik Den starke
Erik den store

Dvs om jag får en Perfect match på sökningen skall denne ligga högst upp resten rangordnas i bokstavsordning beroende på tabellen Username

Medlem sedan dec. 200012 464 inlägg
#11

Nu beror det på vilken dbms du använder, i de flesta utom Access så borde följande fungera

select * from userrname
where username LIKE '%" & strUsername & "%'" &
order by case when username = '" & strUsername & "'" & 
" then 0 else 1 end, username
Medlem sedan juli 20015 107 inlägg
#12

LarsG skrev:

Nu beror det på vilken dbms du använder, i de flesta utom Access så borde följande fungera

select * from userrname
where username LIKE '%" & strUsername & "%'" &
order by case when username = '" & strUsername & "'" & 
" then 0 else 1 end, username

Det fungerar, lite halvt kan man säga.
Vad jag än söker på så listar den alla i hela databasen.
Oavsett vad man söker på. Så egentligen söker den inte ens :)

strSQL = "select * from tblUser where username LIKE '%" & strUsername & "%' order by case when username = '" & strUsername & "'" & " then 0 else 1 end, username"

Set RS = Conn.execute(strSQL)

jag hämtar dut värderna med RS("kolumnnamn") om det har någon betydelse :)

Medlem sedan juni 200032 967 inlägg
#13

Hur sätter du strUsername då? Hur ser den färdiga SQL-frågan ut?

Medlem sedan juli 20015 107 inlägg
#14

@nders skrev:

Hur sätter du strUsername då? Hur ser den färdiga SQL-frågan ut?

Jag sätter inte strUsername....
... Jag sätter strSearch ... :e
men det är nog inte därför ;) (irooni)
kom på det själv precs

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