Avatar billede foru Nybegynder
20. februar 2004 - 16:16 Der er 24 kommentarer og
2 løsninger

Sorter efter

Jeg har oprettet en liste, hvorpå alle mine oprettede brugere vises - sorteret efter oprettelses-datoen. Nu har jeg så lavet en "Select-box" hvor man kan vælge andre oplysninger, den skal sortere efter, men jeg mangler koden... Hvad skal jeg skrive i koden?

_____

Dette er min nuværende kode:

<b>
Alle brugere:<br><br>
&nbsp;</b><form method="POST" action="--WEBBOT-SELF--">
<p>
  Sorter efter:<br>
  <select size="1" name="sorter">
  <option selected value="Oprettet">Oprettet</option>
  <option value="Brugernavn">Brugernavn</option>
  <option value="Kommentarer">Kommentarer</option>
  <option value="Forum-indlæg">Forum-indlæg</option>
  <option value="Sidste login-dato">Sidste login-dato</option>
  </select></p>
</form>
<hr color="#000000" size="1">
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../admin/db/database.mdb")

strSQL = "SELECT ID, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY oprettet DESC"

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then

    Response.Write "<table border=1>"
    Response.Write "<tr><th><font color='#a21709' face='Verdana' size=2><p align=left>Oprettet</p></font></th><th><font face='Verdana' color='#a21709' size=2><p align=left>Brugernavn</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Kommentarer</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Forumindlæg</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Sidste login-dato</p></font></th></tr>"
    Do While Not rs.EOF
    Response.Write "<tr><td width=150><font face='Verdana' size=1>" & rs("oprettet") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2><a href='profil.asp?id=" & rs("id") & "' target='_self'><b>" & rs("username") & "</b></a></font></td>"
    Response.Write "<td><font face='Verdana' size=2>" & rs("antalkomm") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2>" & rs("antalforum") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2>" & rs("slogin") & "</font></td></tr>"
    rs.MoveNext
    Loop
    Response.Write "</table>"
    Else
    ' Hvis der ikke er fundet nogle nyheder
    Response.Write "<p><font face='Verdana' size=2>Der er ikke fundet nogle brugere!</font></p>"
End If

myConn.Close
Set Conn = Nothing
%>

_____

Nogen som kan hjælpe?
Foru
Avatar billede thesurfer Nybegynder
20. februar 2004 - 16:20 #1
Prøv:
strSQL = "SELECT ID, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY " & request.form("sorter") & " DESC"
Avatar billede steen Nybegynder
20. februar 2004 - 16:20 #2
strSQL = "SELECT ID, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY " & Request.form("sorter") & " DESC"
Avatar billede thesurfer Nybegynder
20. februar 2004 - 16:21 #3
Dine value="" skal matche de felter der er i databasen! Ellers virker det ikke..
Avatar billede steen Nybegynder
20. februar 2004 - 16:21 #4
jeg er bare en skygge ;-)
Avatar billede thesurfer Nybegynder
20. februar 2004 - 16:22 #5
hehe :)
Avatar billede foru Nybegynder
21. februar 2004 - 19:43 #6
Hmmm.... Jeg får denne besked, når jeg forsøger at afspille koden på serveren:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in ORDER BY clause.

/musicstuff/bruger/bruger-liste.asp, line 45


Hvad er der galt?
Avatar billede thesurfer Nybegynder
21. februar 2004 - 20:02 #7
Hvordan ser din sql streng ud?
Avatar billede foru Nybegynder
21. februar 2004 - 20:03 #8
Den hedder nu:

strSQL = "SELECT ID, id, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY " & request.form("sorter") & " DESC"
Avatar billede thesurfer Nybegynder
21. februar 2004 - 20:06 #9
har du husket?:
"Dine value="" skal matche de felter der er i databasen! Ellers virker det ikke.."

Dvs, hvis feltet til "Sidste login-dato" hedder "lastlogin", skal der f.eks. stå:
<option value="lastlogin">Sidste login-dato</option>

Læg mærke til at value="NOGET_HER" er navnet på feltet i databasen.
Avatar billede foru Nybegynder
21. februar 2004 - 23:13 #10
Nå, SÅDAN... Okey... Prøver lige!
Avatar billede foru Nybegynder
21. februar 2004 - 23:24 #11
Nope... Virker stadig ikke... For at vide, der er en syntax-fejl i min "ORDER BY clause"...
Avatar billede foru Nybegynder
21. februar 2004 - 23:25 #12
Jo, måske virker det...
Avatar billede foru Nybegynder
21. februar 2004 - 23:25 #13
Ja, nu viser den ingen fejl... Der manglede bare et par '! Men... Der skal vist være en "submit"-knap, for når man vælger noget på listen sker der ingenting...
Avatar billede foru Nybegynder
22. februar 2004 - 12:21 #14
Ka' du hjælpe mig med det? Der sker ingenting, når man vælger noget i listen...
Avatar billede steen Nybegynder
22. februar 2004 - 13:05 #15
Ret den her linie:

<form method="POST" action="--WEBBOT-SELF--">

Til

<form method="POST" action=dinside.asp>

Inden </form> indsætter du:

<input type=submit>
Avatar billede foru Nybegynder
22. februar 2004 - 13:07 #16
Det har jeg gjort... Min kode ser nu sådan Ud:

<form method="POST" action="bruger-liste.asp">
<p>
  Sorter efter:<br>
  <select size="1" name="sorter">
  <option selected value="oprettet">Oprettet</option>
  <option value="username">Brugernavn</option>
  <option value="antalkomm">Kommentarer</option>
  <option value="antalforum">Forum-indlæg</option>
  <option value="slogin">Sidste login-dato</option>
  </select> <input type="submit" value="Udfør" name="Submit"></p>
</form>



Men der sker stadigvæk intet... Brugerne vises stadig i samme rækkefølge!
Avatar billede steen Nybegynder
22. februar 2004 - 13:11 #17
og din sql ser sådan ud?

strSQL = "SELECT ID, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY " & Request.form("sorter") & " DESC"
Avatar billede foru Nybegynder
22. februar 2004 - 13:13 #18
Hele koden: (Ucensureret!)

______________________________

<% Response.Buffer = True %>
<body leftmargin="11">
<font face="Verdana" size="2pt.">
<b>
Alle brugere:<br>
&nbsp;</b><form method="POST" action="bruger-liste.asp">
<p>
  Sorter efter:<br>
  <select size="1" name="sorter">
  <option selected value="oprettet">Oprettet</option>
  <option value="username">Brugernavn</option>
  <option value="antalkomm">Kommentarer</option>
  <option value="antalforum">Forum-indlæg</option>
  <option value="slogin">Sidste login-dato</option>
  </select> <input type="submit" value="Udfør" name="Submit"></p>
</form>
<hr color="#000000" size="1">
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../admin/db/database.mdb")

strSQL = "SELECT ID, id, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY '" & request.form("sorter") & "' DESC"

Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then

    Response.Write "<table border=1>"
    Response.Write "<tr><th><font color='#a21709' face='Verdana' size=2><p align=left>Oprettet</p></font></th><th><font face='Verdana' color='#a21709' size=2><p align=left>Brugernavn</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Kommentarer</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Forum-indlæg</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Sidste login-dato</p></font></th><th><font color='#a21709' face='Verdana' size=2><p align=left>Slet bruger</p></font></th></tr>"
    Do While Not rs.EOF
    Response.Write "<tr><td width=150><font face='Verdana' size=1>" & rs("oprettet") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2><a href='brugerprofil.asp?id=" & rs("id") & "' target='_self'><b>" & rs("username") & "</b></a></font></td>"
    Response.Write "<td><font face='Verdana' size=2>" & rs("antalkomm") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2>" & rs("antalforum") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2>" & rs("slogin") & "</font></td>"
    Response.Write "<td><font face='Verdana' size=2><a href='sletbruger.asp?id=" & rs("id") & "' target='_self'>Slet</a></font></td></tr>"
    rs.MoveNext
    Loop
    Response.Write "</table>"
    Else
    ' Hvis der ikke er fundet nogle nyheder
    Response.Write "<p><font face='Verdana' size=2>Der er ikke fundet nogle brugere!</font></p>"
End If

myConn.Close
Set Conn = Nothing
%>
<hr color="#000000" size="1">
</font>
</body>
Avatar billede thesurfer Nybegynder
22. februar 2004 - 17:28 #19
Jeg synes at din kode ser fint ud.. men tror ikke at der skal være ' tegn udenom request.form("sorter")..
Avatar billede thesurfer Nybegynder
22. februar 2004 - 17:30 #20
Og hvis valget skal sendes videre, uden at man klikker på en knap, skal koden se sådan ud:
<select size="1" name="sorter" onchange="this.form.submit();">
Avatar billede w13 Novice
22. februar 2004 - 17:36 #21
Hmmm... Stadigvæk sker der intet... Der vises heller ikke fejl... Jeg ser siden, som den brude se ud... Men de nægter at sortere sig på andre måder end efter oprettelses-datoen! F.eks. er brugernavnene nu: "talioniz", "Goce" og "Toby", i den rækkefølge... Men de skifter ikke placering, når man ændrer "sorter" til username... Strange!
Avatar billede w13 Novice
22. februar 2004 - 17:41 #22
Det "skægge" er, at hvis man bare skriver "ORDER BY username DESC", så BLIVER de sorteret efter brugernavn!
Avatar billede w13 Novice
22. februar 2004 - 17:43 #23
Ka' jeg sgu ikke hjælpe med, Foru! Og jeg har ellers prøvet at lægge den ud på en server!
Avatar billede foru Nybegynder
22. februar 2004 - 17:47 #24
Nu har jeg prøvet, så der bare står:

strSQL = "SELECT ID, id, username, antalkomm, antalforum, slogin, [oprettet] FROM brugere ORDER BY "& request.form("sorter") & ""

Men jeg får beskeden:

[Microsoft][ODBC Microsoft Access Driver] Syntax error in ORDER BY clause.
Avatar billede foru Nybegynder
09. april 2004 - 09:40 #25
Det er lige meget nu... Jeg behøver det ikke længere, og jeg fik det heller ikke til at virke...!
Avatar billede foru Nybegynder
06. maj 2004 - 15:20 #26
Jeg har løst det..
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester