du skal have en del argumenter med som querystrings...
fx. <% ' finder brugerens inputs... order = request.querystring("order") vej = request.querystring("vej") if order = "" then order = "navn" end if if vej = "" then vej = "asc" end if
'Henter oplysninger fra databasen. Husk at rette navnet på tabellen. sql = "SELECT * FROM tabel ORDER BY " & order & " " & vej & "" 'eksekvere sql-strengen. Husk at have et recordset med navnet rs, eller også skal du rette det i næste linie.. kun på højre side af: =-tegnet. set rs = rs.execute(sql) 'Hvis der ikke er nogen resultater i databasen. if rs.eof then response.write "Der er ingen resultater" else response.write "<table><tr>" 'skriver header sektionen til tabellen. her skal rettes så det passer med hvordan brugeren kan ændre rækkefølgen på tingene. variablen order er feltet der skal sorteres efter. variablen vej er hvilken retning. ASC for ascending (1, 2, 3) DESC for descending (3, 2, 1) if request.querystring("order") = "navn" then if request.querystring("vej") = "asc" OR request.querystring("vej") = "" then response.write "<td><a href="?order=navn&vej=desc">Navn</a></td>" else response.write "<td><a href="?order=navn&vej=asc">Navn</a></td>" end if elseif request.form("order") = "alder" then if request.querystring("vej") = "asc" OR request.querystring("vej") = "" then response.write "<td><a href="?order=alder&vej=desc">Alder</a></td>" else response.write "<td><a href="?order=alder&vej=asc">Navn</a></td>" end if end if response.write "</tr>" 'skriver indholdet fra databasen... while not rs.eof then response.write "<tr><td>" & rs("navn") & "</td>" response.write "<td>" & rs("alder") & "</td></tr>" rs.movenext wend end if rs.close set rs=nothing %>
Håber du kan bruge ovenstående... Jeg har skrevet nogle kommentare som forklare hvordan det virker og hvad der skal rettes for at få det til at funke...
Svært at vurdere når nu zuiq endnu ikke har givet nogen tilbagemelding, men jeg tror at spørgsmålet drejer sig om noget lidt andet.
Først indføre du et talfelt, som angiver den ønskede rækkefølge af sine poster. Jeg plejer at kalde dette felt for ordering, og den tilhørende SQL ser sådan ud:
SELECT * FROM dinTabel ORDER BY ordering ASC
Feltet ordering skal indeholde tallene 0, 1, 2, 3, osv. Hvor 0 altså betyder at den pågældende række kommer allerførst når data udtrækkes, og den aller største værdi tilhøre den række som skal komme allersidst.
Hvis man vil bytte om på rækkefølgen mellem to poster, så bytter man simpelthen om på værdierne i feltet ordering:
Id1 = 4 Id2 = 2
SQL = "SELECT ordering FROM dinTabel WHERE id=" & Id1 Set rs = Conn.Execute(SQL) Ordering1 = rs("ordering")
SQL = "SELECT ordering FROM dinTabel WHERE id=" & Id2 Set rs = Conn.Execute(SQL) Ordering2 = rs("ordering")
SQL = "UPDATE dinTabel SET ordering=" & Ordering2 & " WHERE Id=" & Id1 Conn.Execute(SQL)
SQL = "UPDATE dinTabel SET ordering=" & Ordering1 & " WHERE Id=" & Id2 Conn.Execute(SQL)
hej, det er nielle der har fat i den lange ende :)
det du har lavet dér, så langt er jeg selv kommet - men det jeg tænker er hvis man nu har lavet en rækkefølge på 200 poster, men så ændre rækkefølgen på en post - så skal (næsten) alle de andre posters rækkefølge laves om - er der nogen smart måde at gøre det på?
Altså f.eks. jeg har følge rækkefølge med 5 posts (der nummer i rækkefølgen er defineret på den enkelte, på den måde du også brugte): 1. post 2 2. post 3 3. post 1 4. post 5 5. post 4
hvis jeg så sætter en ny post ind mellem 3 og 4, så skal posts 4 og 5 ha nyt nummer i rækkefølge. Eller hvis jeg tager posten på 1. pladsen og rykker den hen til 4. pladsen - så er der jo også en del af de andre posts der skal opdateret/ha' ændret nummer i rækkefølgen :)
aaah smart, og når man skal rykke et post skal man jo bare 'slette' posten fra dens placering (gøre det modsatte af når man indsætter, altså sorting=sorting-1 for storting <=) - og så indsætte den på det ønskede sted på samme måde du for har forklaret :)!
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.