webForumDet fria alternativet
Logga in / Bli medlem

If...then i SQL-uttryck

ASP

5 svar · 274 visningar · startad av i-or

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

Jag har ett formulär där man får fylla i önskade drop down-menyer. De man fyllt i ska sedan ingå i ett SQL-uttryck och de man lämnat orörda ska inte ingå i SQL-uttrycket. Det skulle alltså behövas en If-sats i SQl-uttrycket, men det funkar ju inte på vanligt sätt. Hur gör jag?

Medlem sedan nov. 20017 144 inlägg
#2

Med querystrings.

If request.querystring("drop_down1") ="Alt1" then
sql="något"
else
sql="något annat"
end if

*************
Eller:
drop_down1=request.querystring("drop_down1")
sql="select * from tabell where something="& drop_down1
'Detta kräver nog ett default i selectlisten om du inte skall få ett felmeddelande.
Medlem sedan dec. 200012 464 inlägg
#3

Det verkar bakvänt att lägga det i sql-satsen. Bygg den dynamiskt och lägg bara till de villkor som är valda. (Det är fördelaktigare ur prestandasynpunkt också.)

ed:
Precis så som Jesper föreslår.

Medlem sedan nov. 2001294 inlägg
#4

Menar ni att jag först ska låta besökarna kryssa i vilka dropdown-menyer de vill avskärma sin sökning med och sen ha själva dropdown-menyerna på nästa sida. Och SQL-satsen och resultatet på en tredje?

Det låter lite omständigt och jobbigt för besökarna. Finns det inget annat sätt att lösa problemet på.

För övrigt är det upp till 10 drop-downmenyer så det är omöjligt att göra SQL-satser för alla olika kombinationer.

Medlem sedan dec. 200012 464 inlägg
#5

Nej, låt varje drodpown ha ett val som heter t.ex. alla. Om det är valt så låt bli det villkoret

q = "select * from t where 1 = 1 "
if request.form("dd1") <> "alla" then
   d = "'" & replace(request.form("dd1"),"'","''") & "'"
   q = q & " and c1 = " & d
end if
if request.form("dd2") <> "alla" then
   d = "'" & replace(request.form("dd2"),"'","''") & "'"
   q = q & " and c2 = " & d
end if
Medlem sedan nov. 2001294 inlägg
#6

funkade väldigt bra, tack så mycket!!

424 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
134 ms — deklarationer (db)
142 ms — hämta statistik (db)
146 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)