18. januar 2006 - 07:20Der er
6 kommentarer og 1 løsning
sortering af array
Hey E
ASP/IIS/Access/IE
fra db hentes feltet: style1, der indeholder id på opgaver i en tabel, fx i style1 står der 2;5;22;23;27; hvilket betyder at brugeren har valgt at se opgave nr 2 5 22 23 og 27. ....kode...: If not rsUser.EOF Then strIndhold = rsUser("style1") End If hvilken = Split(strIndhold,";")
så vises de valgt opgaver: først med en overskrift hvorpå man (bør kunne) sorterer på teksten: ..kode...: bla bla layout.... for each x in rsDB.fields xname = x.name newsort = Replace(Request.QueryString("SC"),"'","''") if newsort = "desc" then newsort = "asc" else newsort = "desc" end if %> <td id="overskrift"> <a href="wms.asp?mode=opgaver&sort=<%=(x.name)%>&SC=<%=newsort%>"><%=" " & xname%></a> </td> <%next %>
så med selve dbindholdet: bla bla layout.... for b = 0 to ubound(hvilken) if hvilken(b) <> "" then Set rs = Conn.Execute("SELECT * FROM opgaver WHERE Auto_opg_id=" & hvilken(b) & " ORDER BY " & sortering & " " & newsort ) bla bla layout.... Dette virker ok, alt bliver præsenteret korrekt, men jeg kan ikke sortere. mine variabler; sortering og newsort får de rigtige indput og ændres korrekt i SELECT statment. Problemet er at rækkefølgen altid er som indholdet i style1, fx: 2;5;22;23;27;
hvordan sorterer jeg via overskrifterne når rækkefølgen er bestemt af style1?
Hvis du laver lidt om på dine data, sådan at style1 feltet indeholder "2,5,22,23,27" i stedet for "2;5;22;23;27;", så kan du klare problemet med SQL's IN-syntaks:
Set rs = Conn.Execute("SELECT * FROM opgaver WHERE Auto_opg_id IN (" & rsUser("style1") & ") ORDER BY " & sortering & " " & newsort
I stedet for at bruge din loop over "For b = 0 To UBound(hvilken)" så kan du nu loope over alle de værdier der kommer ud af denne SELECT. Foruden at du får din sortering på plads, så er dette også mere effektivt end at udføre en SELECT på hvert element i "hvilken" arrayet. :^)
jammen jammen, det er jo nice nice nice. SQL lyder nu: strSQL = "SELECT * FROM opgaver WHERE Auto_opg_id IN (" & strIndhold & ") ORDER BY " & sortering & " " & newsort
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.