webForumDet fria alternativet

Fel på denna kod?

ASP

10 svar · 203 visningar · startad av edebro

Medlem sedan aug. 2001261 inlägg
Frågan#1

Okej, jag håller på med en sökfunktion där man ska kunna filtrera sökningen ganska rejält, men det fungerar inte som jag vill, här är koden:

If Request.Querystring("connectionEquals") = "At least" Then
Select Case Request.Querystring("connection")
Case "T-3"
Userinfo = Userinfo & " AND Line = 'T-3'"
Case "T-1"
Userinfo = Userinfo & " AND Line = 'T-3' OR Line = 'T-1'"
End Select
End If

det fungerar altså så att jag har 2 dropdown menyer. Med valen "At least", "Equal to" och "At best"
Sen om man väljer t ex "At least" i första menyn, sen kan man välja en uppkoppling t ex "DSL" och då får man fram alla som har DSL och snabbare(typ T-3 mm)
Det är denna rad som inte riktigt vill fungera, det måste väl vara nåt fel med SQL satsen
Case "T-1"
Userinfo = Userinfo & " AND Line = 'T-3' OR Line = 'T-1'"

tacksam för snabbt svar

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan juni 200032 967 inlägg
#2

Och SQL-satsen utskriven ser ut hur?

------------------
All your base are belong to me.

Medlem sedan aug. 2001261 inlägg
#3

ja just ja =)

så här ser den ursprungliga SQL satsen ut:
Userinfo = "SELECT * FROM users WHERE ID = " & RecSet("Number")

och sen fortsätter jag bygga på den iom att villkoren för sökningen uppfylls.
Med If satser som ovan.
Men det lite bökiga är att jag söker igenom 2 databaser(tabeller) för att alla funktioner ska uppfyllas

ni får gärna ta er en titt på sidan: http://213.67.56.142/search.asp

den är uppe hela dagen skulle jag tro

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan aug. 2001261 inlägg
#4

om ni kollar på sidan så kan jag berätta att Connection och Country ligger i en annan databas(tabell)

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan juni 200032 967 inlägg
#5

och sen fortsätter jag bygga på den iom att villkoren för sökningen uppfylls.

Hur ser den ut när den är klar då? Använd Response.write för att kasta ut den till webbläsaren innan execute.

Mvh,

------------------
All your base are belong to me.

Medlem sedan aug. 2001261 inlägg
#6

det är ju en bra ide....ska prova det
men annars så tycker du att SQL satsen ser okej eller?

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan aug. 2001261 inlägg
#7

så här såg den ut när jag skrev ut den:
SELECT * FROM users WHERE ID = 352 AND Line = 'T-3' OR Line = 'T-1'

det tycker jag ser ganska okej ut...eller?

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan juni 200032 967 inlägg
#8

Vad är problemet?

Jag tycker att det saknas en parentes, men annars ser frågan rätt ut.

SELECT * FROM users WHERE ID = 352 AND (Line = 'T-3' OR Line = 'T-1')

Mvh,

------------------
All your base are belong to me.

Medlem sedan aug. 2001261 inlägg
#9

problemet är det att den bara listar folk med "T-1" även om man har valt att den ska lista dom med MINST T-1....dvs att den då också ska lista dom med T-3 för att det är snabbare

men jag visste inte att det skulle se ut så där....det ska altså vara paranteser....det har jag aldrig haft förut?

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan aug. 2001261 inlägg
#10

men helvete vad bra @nders......du löste mitt dilemma.
Tusen tack :)

problemet var altså att jag inte hade några paranteser....men det måste ju vara så att när man har flera alternativ bhövs det, för jag har aldrig kört med paranteser förr??

------------------
Mikael Edebro
http://divx.edebro.net

Medlem sedan dec. 19998 577 inlägg
#11

Satser inom paranteser behandlas för sig, annars skulle man inte kunna ställa sådanna frågor.

Where-satser (precis som if) arbetar med true och false. Så om ID är 352, Line är T-1 men inte T-3 så kommer det att se ut såhär för SQL:
True AND (False OR True)

Eftersom du kapslat in false och true med ett OR mellan, så kommer den inkappslingen att bli true.

"True AND True" blir i sin tur blir True, och hela Where-satsen blev sann.

Det hela handlar om logisk mattematik.

Kanske lite klumpigt beskrivet, men så är det... ;)

------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu

[Redigerat av Vide den 20 nov 2001]

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)