Avatar billede krc_ Nybegynder
23. november 2003 - 20:21 Der er 4 kommentarer og
1 løsning

Dynamisk sortering eller hvad man skal kalde det :o)

Jeg har nedenstående fil til at læse min database. I min sql-sætning 'sql = "SELECT * FROM TestTabel order by Navn asc"' vælger jeg jo at sortere det efter Navn. Men jeg vil gerne have et rullepanel på siden hvor man kan vælge Navn (skal være standard), Dato, Email, tid, eller et eller andet felt fra databasen at sortere efter og når man så vælger et felt i rullepanelet så opdateres siden efter den nye sortering....Hvordan gøres det ?

<!-- #include file="db.inc" -->
<%
if session("godkendt") = False then
response.redirect "login.asp"
end if
%>
<%
Dim dbc
Dim strConn
Dim strpath

strConn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/krcDB.mdb")
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.open strConn

sql = "SELECT count(id_no) as antal FROM TestTabel"
set rscount = dbc.Execute(sql)

antal = rscount("antal")
set rscount = nothing

'Vælger at læse alle felter fra databasen og sorterer efter dato.
sql = "SELECT * FROM TestTabel order by Navn asc"
set rs = dbc.Execute(sql)
%>

<html>

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <link rel="stylesheet" type="text/css" href="fiskestil.css">
  </head>

<body bgcolor="#d7dadf">

<div align="center">
  <center>
    <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600" id="AutoNumber2">
      <tr>
        <td width="100%">
          <p align="center">
            <font face="Verdana" size="1">
                Antal Personer <%=antal%>
            </font>
          </p>
        </td>
      </tr>
    </table>
  </center>
</div>

<br>

<%
if rs.eof then
  response.write "<FONT size=1 face=verdana><p align='center'><b>ingen oprettede</b></p></font>"
else
'Løkke der sørger for at vi læser hele databasen til ende.
Do While Not rs.EOF
%>

<div align="center">
<center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2">
  <tr>
    <td width="20%"  align="left"><font face="Verdana" size="1"><b>
    Navn</b>
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana><b>" & rs("navn") & "</b></FONT>"
    %>
    </td>
  </tr>
  <tr>     
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Email, Arbejde
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.Write("<FONT size=""1"" face=""verdana""><a href=""mailto:"& rs("Emailarbejde") & """>" & rs("Emailarbejde") & "</a>" & "</FONT>")
    %>
    </td>
  </tr>
  <tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Email, Privat
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.Write("<FONT size=""1"" face=""verdana""><a href=""mailto:"& rs("Emailprivat") & """>" & rs("Emailprivat") & "</a>" & "</FONT>")
    %>
    </td>
  </tr>
  <tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Telefon, Arbejde
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana>" & rs("Telefonarbejde") & "</FONT>"
    %>
    </td>
  </tr>
  <tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Telefon, Mobil
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana>" & rs("Telefonmobil") & "</FONT>"
    %>
    </td>
  </tr>
    <tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Telefon, Privat
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana>" & rs("Telefonprivat") & "</FONT>"
    %>
    </td>
  </tr>
<tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Arbejdsplads
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana>" & rs("Arbejdsplads") & "</FONT>"
    %>
    </td>
  </tr>
<tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Adresse, Arbejde
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana>" & rs("Arbejdspladsadresse") & "</FONT>"
    %>
    </td>
  </tr>
<tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    www.arbejde.dk
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.Write("<FONT size=""1"" face=""verdana""><a target=""_blank"" href="""& rs("Arbejdspladswww") & "  "">" & rs("Arbejdspladswww") & "</a>" & "</FONT>")
      %>
    </td>
  </tr>
<tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    Adresse, Privat
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.write "<FONT size=1 face=verdana>" & rs("Privatadresse") & "</FONT>"
    %>
    </td>
  </tr>
<tr> 
    <td width="20%"  align="left"><font face="Verdana" size="1">
    www.privat.dk
    </td>
    <td width="80%"  align="left"><font face="Verdana" size="1">
    :
    <%
      Response.Write("<FONT size=""1"" face=""verdana""><a target=""_blank"" href="""& rs("Privatwww") & "  "">" & rs("Privatwww") & "</a>" & "</FONT>")
    %>
    </td>
  </tr>
  </table>
</center>
</div>

<div align="center">
<center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2">
  <tr>
    <td width="100%">
    <hr width="100%">
    </td>
  </tr>
  </table>
</center>
</div>

<%
rs.MoveNext
Loop
rs.Close
dbc.close
end if
%>

<br>

<div align="center">
<center>
  <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="650" id="AutoNumber2">
  <tr>
    <td width="100%" align="center">
    <a href="admin.asp"> <font face="verdana" size="1">Tilbage</font></a>
    </td>
  </tr>
  </table>
</center>
</div>

</body>
</html>
Avatar billede thesurfer Nybegynder
23. november 2003 - 20:36 #1
<a href="dinside.asp?sort=email">Sorter efter email</a>

sql = "SELECT * FROM TestTabel order by " request.querystring("sort") & " asc"

Men så vidt jeg ved er "asc" standard, dvs du behøver den ikke:

sql = "SELECT * FROM TestTabel order by " request.querystring("sort")
Avatar billede thesurfer Nybegynder
23. november 2003 - 20:36 #2
rettelse:

sql = "SELECT * FROM TestTabel order by " & request.querystring("sort") & " asc"

og:

sql = "SELECT * FROM TestTabel order by " & request.querystring("sort")
Avatar billede thesurfer Nybegynder
23. november 2003 - 20:41 #3
Men du bør for en sikkerhedsskyld check hvad der står i "sort":

dim sort
select case lcase(request.querystring("sort"))
case "navn"
  sort = "navn"
case "dato"
  sort = "dato"
case "email"
  sort = "email"
case "tid"
  sort = "tid"
case else
  ' ingen af de nævnte sorterings muligheder er brugt
  ' der bruger derfor "navn":
  sort = "navn"
end select

sql = "SELECT * FROM TestTabel order by " & sort
Avatar billede deeflate Nybegynder
23. november 2003 - 22:49 #4
Så kan du jo også tilføje desc hvor du ønsker det.
F.eks.

case "dato"
  sort = "dato DESC"
Avatar billede krc_ Nybegynder
24. november 2003 - 09:58 #5
Perfekt....tak!
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