Avatar billede jackpower Nybegynder
01. april 2001 - 13:58 Der er 1 kommentar og
1 løsning

Søge problemer

Hejsa er der en her der kan komme med et svar på hvorfor den ikke kan finde et brugernavn der er mellemrum i?

Hvis jeg søger efter \"Niels\"
og der kun er én der hedder Niels Peter så viser den den ikke, men er der derimod flere på samme søgning så tager den ogsp Niels Peter med kan bare ikke finde ud af hvorfor? - kan I??

Her er det jeg bruger:

If Trim(request.QueryString(\"amin\")) = \"\" then
  stramin = 1
else
  stramin = Trim(request.QueryString(\"amin\"))
End if

If Trim(request.QueryString(\"amax\")) = \"\" then
  stramax = 99
Else
  stramax = Trim(request.QueryString(\"amax\"))
End if

strbruger = request.QueryString(\"FormSeBruger\")
strsex = Trim(request.QueryString(\"sex\"))
strpic = Trim(request.QueryString(\"pic\"))

stramin = Replace(stramin,\"\'\",\"\'\'\")
stramax = Replace(stramax,\"\'\",\"\'\'\")
strsex = Replace(strsex,\"\'\",\"\'\'\")
strpic = Replace(strpic,\"\'\",\"\'\'\")
strbruger = Replace(strbruger,\"\'\",\"\'\'\")

\' Opbygger en dynamisk SQL streng
strSQL = \"SELECT brugernavn, sex, foto, alder, adresse, hjem FROM brugere WHERE\"
strSQL = strSQL & \" (brugernavn LIKE \'\" & strbruger & \" %\')\"
strSQL = strSQL & \" and (sex LIKE \'\" & strsex & \"%\')\"
strSQL = strSQL & \" and (alder BETWEEN \'\" & stramin & \"\' AND \'\" & stramax & \"\')\"
strSQL = strSQL & \" and (foto LIKE \'\" & strpic & \"%\') ORDER BY brugernavn\"

\' Skaber DSNLess forbindelse til DBen
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & server.mappath(\"../database/profil.mdb\")
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open strDSN

Set rs = Server.CreateObject(\"ADODB.RecordSet\")
rs.Open strSQL, myConn, 1

Mvh
Jack!!
Avatar billede Slettet bruger
01. april 2001 - 14:59 #1
\"Niels Peter\" bliver til \"Niels%Peter\" i querysrtingen i IE når du sender via http get

Hvad den bliver i andre browsere ved jeg ikke..

Derfor søger den efter Niels%Peter

Lav en mellemliggende fil, der \"kontruerer\" din querystring (jeg går ud fra, at du har valgt at bruge querystring/get fordi du skal bruge det til noget fornuftgt (paging eller noget)...

Få filen til at modtage FormSeBruger via http post (eller request.form om du vil), og lav så en replace:

strbruger = replace(request.form(\"FormSeBruger\"),\" \",\"%\")
response.redirecct(\"densidedermodtagerformularen.asp?FormseBruger=\" & strbruger)

Så er du SIKKER på at mellemrum i querystringen bliver representeret som \"%\" (du kan selfølgelig vælge et andet tegn hvis du vil...

Derefter replacer du bare i den oprindelige fil:
strbruger = replace(strbruger,\"%\",\" \")

dette lader sig gøre fordi POST sender mellemrum som den skal, men GET gør ikke...
Avatar billede jackpower Nybegynder
01. april 2001 - 15:20 #2
Ja jeg bruger GET pga paging :o)
Oki jeg takker og kvitt med dine point :o)

Mvh
Jack!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester