webForumDet fria alternativet

Problem med Querystrings!

11 svar · 229 visningar · startad av Pudolf

PudolfMedlem sedan juli 2000224 inlägg
#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!

sgtpepperMedlem sedan apr. 20005 524 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

PatrikBMedlem sedan mars 20002 713 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 **
=================================

@ndersMedlem sedan juni 200026 914 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]

bohlinMedlem sedan mars 2000264 inlägg
#5

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

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

PudolfMedlem sedan juli 2000224 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]

PudolfMedlem sedan juli 2000224 inlägg
#7

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

tacksam för svar!

sgtpepperMedlem sedan apr. 20005 524 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]

PudolfMedlem sedan juli 2000224 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!

VideMedlem sedan dec. 19996 094 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

PudolfMedlem sedan juli 2000224 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!

PudolfMedlem sedan juli 2000224 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!

378 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
0 ms — hämta statistik (cache)
124 ms — slå upp tråd (db)
0 ms — hämta forumlista (cache)
131 ms — hämta inlägg (db)
121 ms — hämta bilagor (db)