webForumDet fria alternativet
Logga in / Bli medlem

REquest.Querystring

ASP

17 svar · 262 visningar · startad av His Divine Shadow

Medlem sedan sep. 20004 079 inlägg
Trådstart#1

En fråga:
kundlista.asp?Produkt=W__&Sort=postnr

Detta fält(postnr) innehåller denna (exempel) text:

00940 HELSINKI
Post nummer och Ort, hur ska jag göra om jag vill att det ska börja sortera från det 7:de tecknet?

Medlem sedan okt. 20005 273 inlägg
#2
strAdress = Mid(Request.Querystring("postnr"), 7)

typ :OO

Medlem sedan dec. 19996 721 inlägg
#3

Menar du sorteringen i databasen? Då har det inget att göra med querystringen.

Medlem sedan mars 20002 836 inlägg
#4

eh, lite off-topic men riktnummer till Helsinki: 00940 stämmer väl inte ....

Ska du ringa utlandet idag så är det endast 00 + (lokaltriktnummer - första nollan) i detta fall - 0040

cya,
PatrikB

Medlem sedan sep. 20004 079 inlägg
#5

rikt....nummer????

Det är ett Postnummer, inte ett riktnummer.

Medlem sedan okt. 20005 273 inlägg
#6

vad var problemet da??

Medlem sedan sep. 20004 079 inlägg
#7

Ett problem med denna lösning.
Kolla:
"ORDER BY " & Request.QueryString("Sort") & " "

Denna lösning som ni gav funkar bara om det endast kan kunna sorteras efter postnr, men det kan sorteras efter namn osv också, så jag antar jag behöver en sorts "If sats" här.. om ni fattar vad jag menar.

Medlem sedan dec. 200012 464 inlägg
#8

Om du har en querystring som ser ut som

visa?sort=postnr&sort=namn

så borde det vara ok att skriva

"order by " & request.querystring("sort")

Med den querystring som jag skrev så skulle resultatet bli

order by postnr,namn

Medlem sedan sep. 20004 079 inlägg
#9

Nej jag har en string som ser ut såhär:

kundlista.asp?Produkt=W__&Sort=postnr

Produkt är kundnummren, detta tar hand om vilka poster som ska visas "sort" tar hand om hur sorteringen ska skötas.
Och jag har en tabell i sidan där namn och ort osv fins listade, och på dom kan man klicka så det sorteras efter dom, dom är länkar och postnr så har just den som jag visar, namn har:
kundlista.asp?Produkt=W__&Sort=namn

Jag vill ju inte att namn ska sorteras efter det 7:de tecknet, detta gäller endast för postnr

Medlem sedan okt. 20005 273 inlägg
#10
If Request.Querystring("Sort") = "postnr" Then
strToOrderBy = "Right(ObjRS("postnr"), 5)"
Else
strToOrderBy = "Mid(ObjRS("postnr"), 7)"
End If

:OO

Medlem sedan sep. 20004 079 inlägg
#11

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/main/swe/kundlista.asp, line 4

strToOrderBy = "Right(ObjRS("postnr"), 5)"
-----------------------------^

??? Jag fattar helt enkelt inte, om " teckent är i vägen och ändå behövs hur ska man då göra?

Medlem sedan okt. 20005 273 inlägg
#12
If Request.Querystring("Sort") = "postnr" Then
strToOrderBy = Right(ObjRS("postnr"), 5)
Else
strToOrderBy = Mid(ObjRS("postnr"), 7)
End If

hmm.... :r

Medlem sedan sep. 20004 079 inlägg
#13

Såhär ser det ut:
<%
produkt = Request.QueryString("produkt")

If Request.Querystring("Sort") = "postnr" Then
strToOrderBy = Right(RS_prod("postnr"), 5)
Else
strToOrderBy = Mid(RS_prod("postnr"), 7)
End If
%>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
SQL= "SELECT * FROM KUND " &_
"WHERE Kundnr LIKE '" & Produkt & "'" &_
"ORDER BY " & strToOrderBy & " "
Conn.Open Session("GB_ConnectionString")
Set RS_prod = Conn.Execute(SQL)

%>

Och det säger:
Microsoft JET Database Engine error '80040e14'

Syntax error in ORDER BY clause.

Jag bytte ut ObjRS mot RS_Prod också.

Medlem sedan juni 20001 257 inlägg
#14

Ska du ringa utlandet idag så är det endast 00 + (lokaltriktnummer - första nollan) i detta fall - 0040

Nej, för att ringa utlandet slår man 00 + landsnummer + (lokalt riktnummer minus första nollan) + telefonnummer.

Ex. 0035812555555 om det är telefonnumret 012-555555 i Finland.

Medlem sedan dec. 200012 464 inlägg
#15

Jag vill ju inte att namn ska sorteras efter det 7:de tecknet, detta gäller endast för postnr

Jag förstår inte. Vad är 7:e tecknet?

Medlem sedan dec. 19996 721 inlägg
#16

Vill du att den ska sortera efter ortsnamnen och strunta i postnumren, eller?

En ORDER BY RIGHT(LEN(PostNR)-6) torde funka i MSSQL, men knappast i Access/JET.

Medlem sedan sep. 20004 079 inlägg
#17

Bingo emission, hursomhelst jag tror jag har en lösning, detta med orts namnen så är lite problematiskt när man har 'vanliga' fält också, så jag kommer att lägga detta in en kopia som används då man väljer sortera efter ort namn.

Medlem sedan dec. 200012 464 inlägg
#18

Du får väl göra något såhär

if  request.querysting("sort") = "postnr" then
   sql = "select namn,postnr from t " 
else
   sql ="select namn,postnr,mid(postnr,7) from t
end if
'sätt villkor

sql = sql & " where ... "

if  request.querysting("sort") = "postnr" then
   sql = sql & " order by postnr " 
else
   sql ="sql & " order by 3 " 
end if

där 3 i order by motsvarar den 3 positionen i select-listan.

257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)