webForumDet fria alternativet

If...then i SQL-uttryck

5 svar · 272 visningar · startad av i-or

i-orMedlem sedan nov. 2001294 inlägg
#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?

Jesper TMedlem 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.
LarsGMedlem 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.

i-orMedlem 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.

LarsGMedlem 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
i-orMedlem sedan nov. 2001294 inlägg
#6

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

136 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)