webForumDet fria alternativet

Problem med Querystrings!

ASPur ASP

11 svar · 229 visningar · startad av Pudolf

Medlem sedan juli 2000221 inlägg
Frågan#1

hej på er alla!

jag har ett litet problem med Querystring.

Jag har en länk.
(http://minhemsida.com/default.asp?visa=volvo)

då vet jag hur man gör så att den visar all volvos. Men om jag skriver länken.
(http://minhemsida.com/default.asp?visa=volvo&farg=bla)

Då vill jag att den visar alla blå volvos. vet inte rkigit hur man gör här är min kod får EN querystring.

if request.queryString("visa") = "volvo" then
SQL = "SELECT * FROM Bil WHERE datum = #"&date&"# AND Marke = 'volvo' ORDER BY tid Desc "
Set RS = Connection.Execute(SQL)

elseif request.queryString("visa") = "saab" then
SQL = "SELECT * FROM Bil WHERE datum = #"&date&"# AND Marke = 'Saab' ORDER BY tid Desc "
Set RS = Connection.Execute(SQL)

osv. koden slutar inte här. men...

Hur skall jag gå tillväga? :q:q
Tacksam för svar!

Medlem sedan apr. 20007 588 inlägg
#2

Använd Querystring-värdet direkt i SQL-satsen:

SQL = "SELECT * FROM Bil WHERE datum = #"&date&"# AND [b]Marke = '" & request.queryString("visa") & "' AND Farg = '" & request.queryString("farg") & "'[/b] ORDER BY tid Desc "
Set RS = Connection.Execute(SQL)

Det kan vara bra att ha en koll innan så att querystring-värden verkligen är satta.

------------------

1010011010 - The binary number of the beast

Medlem sedan mars 20002 836 inlägg
#3

Hello,

en anna sak med Request.QueryStrings är om man har tex fil.asp?farg=djup bla&marke=saab

så stannar querystringen vid mellanslaget mellan djup och bla.

Det rättar man till med hjälp av Server.URLEncode(String) som gör att alla mellanslag blir + istället och querystringen håller ihop så att säga.

Hoppas att det är ngn som förstod ..... svammlet ovan .....

PatrikB

------------------
=================================
** ZWGdesign **
=================================

Medlem sedan juni 200032 967 inlägg
#4

för övrigt heter det djupblå, inte djup blå. djupblå är ett sammansatt ord, precis som till exempel internminne och diskettstation. jämförelser med ett par ord ur denna kategori kan vara nödvändig för att ni ska kunna relatera.

satt alla hemma och hackade under svenskalektionerna i gymnasiet?

;)

------------------
@nders

[Redigerat av @nders den 11 jul 2000]

Medlem sedan mars 2000263 inlägg
#5

För alla er som inte gillar särskrivningar: http://www.translator.se/pages/avigsidan/avigt008.html

------------------
/bohlin

Medlem sedan juli 2000221 inlägg
#6

tack för alla svar!

men hur gör jag ifall det är två länkar till sidan.
(default.asp?marke=volvo)
respektive
(default.asp?marke=volvo&farg=bla)
den ena visar enbart alla volovs.

if request.queryString("visa") = "volvo" then
SQL = "SELECT * FROM Bil WHERE datum = #"&date&"# AND Marke = 'volvo' ORDER BY tid Desc "
Set RS = Connection.Execute(SQL)

den andra visar alla (ex)blå volvos.

SQL = "SELECT * FROM Bil WHERE datum = #"&date&"# AND Marke = '" & request.queryString("visa") & "' AND Farg = '" & request.queryString("farg") & "' ORDER BY tid Desc "
Set RS = Connection.Execute(SQL)

(koden ovan skrev sgtpepper)

hur lägger jag in detta till en hel kod?
tacksam för svar!

[Redigerat av Pudolf den 11 jul 2000]

[Redigerat av Pudolf den 12 jul 2000]

Medlem sedan juli 2000221 inlägg
#7

behöver man använda if-satser då?
isånafall , hur skriver man det?

tacksam för svar!

Medlem sedan apr. 20007 588 inlägg
#8

Gör en koll om farg är satt, i så fall så skall angiven färg tas med i SELECT-satsen:

SQL = "SELECT * FROM Bil WHERE datum = #"&date&"# AND Marke = '" & request.queryString("visa") & "'"

[b]if request.querystring("farg") <> "" then
  SQL = SQL & "AND Farg = '" & request.queryString("farg") & "'"
end if
[/b]

SQL = SQL & "ORDER BY tid Desc "
Set RS = Connection.Execute(SQL)

På så sätt så kommer SELECT-satsen enbart att ta med farg som ett villkor om querystring("farg") innehåller ett värde.

------------------

1010011010 - The binary number of the beast

[Redigerat av sgtpepper den 12 jul 2000]

Medlem sedan juli 2000221 inlägg
#9

tack sgtpepper.
men jag föfsökte med detta, om man kommer till sidan utan quertstring.

if request.querystring("visa") <> "" then
SQL = "SELECT * FROM Bil WHERE Marke = '" & request.queryString("show") & "'"
if request.querystring("farg") <> "" then
SQL = SQL & "AND Farg = '" & request.queryString("farg") & "'"

SQL = SQL & "ORDER BY datum Desc "
Set RS = Connection.Execute(SQL)

else
SQL = "SELECT * FROM Bil ORDER BY datum Desc "
Set RS = Connection.Execute(SQL)

end if
end if

men sidan vill inte ens ladda.....

tacksam för svar!

Medlem sedan dec. 19998 577 inlägg
#10

Om du kommer till sidan utan någon querystring nu så kommer du att hamna efter dom två End If...

End If
End If
'Här hamnar du...

Lägg istället in en Else för den första If-satsen:

End If
Else
'här hamnar du då...
End if

------------------
Förnekar bäst som förnekar längst - helst 2-3 meter
www.webeye.nu

Medlem sedan juli 2000221 inlägg
#11

tack vide!

nu fungerar det. förutom detta.

om länken t ex. är default.asp?visa=volvo

och det då inte finns någon volvo. då laddas den inte. skulle behöva något som säger typ, "inga poster..."

kan man skriva ungefär.

If RS.EOF Then
Response.write ("Inga poster...")

eller är jag helt ute? Om det går att skriva så, var i SQL-koden gör jag det?

om länken är
default.asp?visa=volvo&farg=gul

då laddas iaf sidan. utan resultat (eftersom det inte finns någon gul volvo)

skulle behöva en "inga poster..."-text där med.

tacksam försvar!

Medlem sedan juli 2000221 inlägg
#12

Halloj!

Ännu ett problem uppstod, hjälp mig gärna!

När URL till sidan med denna kod nedan (default.asp) är såhär:
default.asp?marke=volvo

av någon konstig anledning visar den då de två senaste inlagda posterna oavsett vad Querystringen Marke visar!
(id 12 och 13 förtillfället)

Men om adressen är med farg querystring:
default.asp?marke=volvo&farg=bla

Då visar den korrekt!

HÄR ÄR KODEN!

if request.querystring("visa") <> "" then
SQL = "SELECT * FROM Bil WHERE Marke = '" & request.queryString("show") & "'"
if request.querystring("farg") <> "" then
SQL = SQL & "AND Farg = '" & request.queryString("farg") & "'"
SQL = SQL & "ORDER BY datum Desc "
Set RS = Connection.Execute(SQL)

else
SQL = "SELECT * FROM Bil ORDER BY datum Desc "
Set RS = Connection.Execute(SQL)

end if
else
SQL = "SELECT top 5 * FROM Nyheter ORDER BY datum Desc "
Set RS = Connection.Execute(SQL)
end if

If RS.EOF Then
Response.write("<font face='Arial' size='2'><font color='000000'>INGA Bilar...</font>")
Else

Tacksam för svar!

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