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?
If...then i SQL-uttryck
5 svar · 272 visningar · startad av i-or
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.
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.
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.
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
funkade väldigt bra, tack så mycket!!