webForumDet fria alternativet

Sökning i flera fält och med flera söksträngar

Databaser & SQL

4 svar · 417 visningar · startad av rust

Medlem sedan dec. 200310 inlägg
Frågan#1

Har en databas där det finns ett fält för efternamn och ett för förnamnet. på söksidan finns ett formulär(get) med två textrutor, en för förnamn och efternamn. det funkar bra om man fyller i den översta av rutorna (förnamn), fyller man i båda funkar det oxå. fyller man dock bara i efternamn får den inga träffar.

Slutgiltligen, så länge Request.Querystring("fornamn") innehåller något form av tecken så fungerar det utmärkt, inte annars.


dbSearch = "SELECT * FROM register WHERE fornamn LIKE '%" & Replace(Request.Querystring("fornamn"),"'","''") & "%' AND efternamn LIKE '%" & Replace(Request.Querystring("efternamn"),"'","''") & "%'"

Hoppas nån som är lite bra på det här kan hjälpa till, och kanske kan förklara varför det blir som det blir... =)

Medlem sedan dec. 200012 464 inlägg
#2

Jag ser inget fel i SQL-satsen som sådan. Det jag kan tänka mig är att det finns något skräp i din querystring. Testa med att skriva ut den färdiga sql-frågan innan den utförs

dbSearch = "SELECT * FROM register WHERE fornamn LIKE '%" & Replace(Request.Querystring("fornamn"),"'","''") & "%' AND efternamn LIKE '%" & Replace(Request.Querystring("efternamn"),"'","''") & "%'" 
response.write "SQL:" & dbsearch 
response.end
Medlem sedan dec. 200310 inlägg
#3

Ok, testade det.

Fyller jag i båda fälten, förnamn=ma efternamn=see:

SQL:SELECT * FROM register WHERE fornamn LIKE '%ma%' AND efternamn LIKE '%see%'

endast förnamn:
SQL:SELECT * FROM register WHERE fornamn LIKE '%ma%' AND efternamn LIKE '%%'

endast efternamn:
Då skrivs det inte ut ett endaste dugg...likaså om jag lämnar båda fälten tomma.

Medlem sedan dec. 200012 464 inlägg
#4

Då skrivs det inte ut ett endaste dugg

Menar du att det inte kommer något resultat från databasen eller att du inte får ut någon text med

SQL: <någon text>

?

Om det är det första så begriper jag inte alls däremot om det är det andra så indikerar det att det är något i din ASP-kod som är fel. I så fall får du posta mer av den.

Medlem sedan dec. 200310 inlägg
#5

Nu blev det lite pinsamt, hehe....klantig som man är...

har drabbats av kod-blindhet..

innan hade jag bara ett fält att fylla i, förnamn. och hade därför lagt in en if sats som gjorde att hela databas-joxet skulle hoppas över om man inte sökt på något, med andra ord om fornamn var tomt.

aj-aj...ursäkta ursäkta.. :)

nu fungerar det iaf som det ska!

441 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
125 ms — hämta statistik (db)
138 ms — hämta tråd, inlägg och bilagor (db)
174 ms — ändringar (db)