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?
17 svar · 262 visningar · startad av His Divine Shadow
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?
Menar du sorteringen i databasen? Då har det inget att göra med querystringen.
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
vad var problemet da??
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.
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
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
If Request.Querystring("Sort") = "postnr" Then
strToOrderBy = "Right(ObjRS("postnr"), 5)"
Else
strToOrderBy = "Mid(ObjRS("postnr"), 7)"
End If
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?
If Request.Querystring("Sort") = "postnr" Then
strToOrderBy = Right(ObjRS("postnr"), 5)
Else
strToOrderBy = Mid(ObjRS("postnr"), 7)
End If
hmm....
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å.
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.
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?
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.
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.
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.