Avatar billede kaage Nybegynder
01. november 2002 - 11:17 Der er 8 kommentarer og
1 løsning

Bruger vælger sortering

Hejsa,

Jeg har nu søgt igennem ekspertens lager af info, og kan ikke rigtig finde det rigtig svar på dette.

Jeg har et simpelt udtræk fra en access db, som jeg gerne vil give brugeren mulighed for, selv at sortere. Altså efter status, navn, osv osv. Gerne med 2 pile - en op og en ned.

Det burde da ikke være det store problem for nogle "hajer" som jer ;o)

MVH - Kaage
Avatar billede medions Nybegynder
01. november 2002 - 11:25 #1
If Request.QueryString("Section") = "ShowJokeList" Then
        '___________________________________________________________________________________________________________________
        'Pagin 1
            'Samler antallet af poster
        strSQL = "SELECT Count(*) FROM tblJokes"
        Set objRs = objConn.Execute(strSQL) 'Til generalt hentning af recordsetsne
       
        intRecords = int(objRs(0))
        objRs.Close
        Set objRs = Nothing
       
        'Variabler til query'et sker her
        intPage = Request.QueryString("page")
        If intPage = "" Or Not isNumeric(intPage) Then
            intPage = Int(1)
        Else
            intPage = Int(intPage)
        End If
       
        intPageSize = Int(20)
        intStart = intPage*intPageSize
        intStart = intStart-intPageSize
        intPages = Int(intRecords/intPageSize)+1
       
        Set objRsCount = objConn.Execute("SELECT COUNT(*) FROM tblJokes")
        intLevel = Request.QueryString("Level")
        If intLevel = 1 And Request.QueryString("Order_By") <> "" Then
            Set objRs = objConn.Execute("SELECT * FROM tblJokes ORDER BY " & Request.QueryString("Order_By") & " ASC LIMIT " & intStart & ", " & intPageSize & ";")
        ElseIf intLevel = 2 Then
            Set objRs = objConn.Execute("SELECT * FROM tblJokes ORDER BY " & Request.QueryString("Order_By") & "  DESC LIMIT " & intStart & ", " & intPageSize & ";")
        Else
            Set objRs = objConn.Execute("SELECT * FROM tblJokes ORDER BY JokeID ASC LIMIT " & intStart & ", " & intPageSize & ";")
        End If
        '___________________________________________________________________________________________________________________
        'Visning af Jokes
       
        If objRs.EOF Or objRs.BOF Then
            Response.Write("<center><b>Ingen Poster</b></center>")
        Else
        Response.Write("<p>&nbsp;<p>")
            Response.Write("<table class=""font"" align=""center"" width=""90%"" cellspacing=""0"">")
                Response.Write("<tr>")
                If Request.QueryString("Order_By") = "JokeID" And Request.QueryString("Level") = 1 Then
                    Response.Write("<td width=""40"" class=""horizontal""><b>ID <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeID&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                ElseIf Request.QueryString("Order_By") = "JokeID" Then
                    Response.Write("<td width=""40"" class=""horizontal""><b>ID <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeID&Level=1""><img src=""img/down.gif"" border=""0""></a></b></td>")
                Else
                    Response.Write("<td width=""40"" class=""horizontal""><b>ID <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeID&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                End If
               
                If Request.QueryString("Order_By") = "JokeName" And Request.QueryString("Level") = 1 Then
                    Response.Write("<td width=""250"" class=""horizontal""><b>Joke <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeName&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                ElseIf Request.QueryString("Order_By") = "JokeName" Then
                    Response.Write("<td width=""250"" class=""horizontal""><b>Joke <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeName&Level=1""><img src=""img/down.gif"" border=""0""></a></b></td>")
                Else
                    Response.Write("<td width=""250"" class=""horizontal""><b>Joke <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeName&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                End If
               
                If Request.QueryString("Order_By") = "Activated" And Request.QueryString("Level") = 1 Then
                    Response.Write("<td width=""75"" class=""horizontal""><b>Aktiveret <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Activated&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                ElseIf Request.QueryString("Order_By") = "Activated" Then
                    Response.Write("<td width=""75"" class=""horizontal""><b>Aktiveret <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Activated&Level=1""><img src=""img/down.gif"" border=""0""></a></b></td>")
                Else
                    Response.Write("<td width=""75"" class=""horizontal""><b>Aktiveret <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Activated&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                End If
               
                If Request.QueryString("Order_By") = "Showed" And Request.QueryString("Level") = 1 Then
                    Response.Write("<td width=""40"" class=""horizontal""><b>Hits <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Showed&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                ElseIf Request.QueryString("Order_By") = "Showed" Then
                    Response.Write("<td width=""40"" class=""horizontal""><b>Hits <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Showed&Level=1""><img src=""img/down.gif"" border=""0""></a></b></td>")
                Else
                    Response.Write("<td width=""40"" class=""horizontal""><b>Hits <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Showed&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                End If
               
                If Request.QueryString("Order_By") = "Average" And Request.QueryString("Level") = 1 Then
                    Response.Write("<td width=""95"" class=""horizontal""><b>Gennemsnit <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Average&Level=2""><img src=""img/up.gif"" border=""0""></b></td>")
                ElseIf Request.QueryString("Order_By") = "Average" Then
                    Response.Write("<td width=""95"" class=""horizontal""><b>Gennemsnit <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Average&Level=1""><img src=""img/down.gif"" border=""0""></b></td>")
                Else
                    Response.Write("<td width=""95"" class=""horizontal""><b>Gennemsnit <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Average&Level=2""><img src=""img/up.gif"" border=""0""></b></td>")
                End If
               
                If Request.QueryString("Order_By") = "Birth" And Request.QueryString("Level") = 1 Then
                    Response.Write("<td width=""90"" class=""horizontal""><b>Dato <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Birth&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                ElseIf Request.QueryString("Order_By") = "Birth" Then
                    Response.Write("<td width=""90"" class=""horizontal""><b>Dato <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Birth&Level=1""><img src=""img/down.gif"" border=""0""></a></b></td>")
                Else
                    Response.Write("<td width=""90"" class=""horizontal""><b>Dato <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=Birth&Level=2""><img src=""img/up.gif"" border=""0""></a></b></td>")
                End If
                Response.Write("</tr>")
               
                Do Until objRs.EOF
                    intJokeID    = objRs("JokeID")
                   
                    If intColor = 1 Then
                      intBgColor="#FCFCFC"
                      intColor = intColor + 1 'Plusser intColor egentlige resultat med 1
                    Else
                      intBgColor="#E5E5E5"
                      intColor = 1 'Sætter intColor = 1
                    End If
                    If Len(objRs("JokeName")) > 33 Then
                        strJokeName = Left(objRs("JokeName"),33) & "..."
                    Else
                        strJokeName = objRs("JokeName")
                    End If
                    Response.Write("<tr>")
                        Response.Write("<td bgcolor=""" & intBgColor & """>" & intJokeID & ".</td>" & vbCrLf)
                        Response.Write("<td bgcolor=""" & intBgColor & """><a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?ShowJoke=" & intJokeID & """ title=""" & objRs("KatID") & """>" & strJokeName & "</a></td>" & vbCrLf)
                        Response.Write("<td bgcolor=""" & intBgColor & """>" & objRs("Activated") & "</td>" & vbCrLf)
                        Response.Write("<td bgcolor=""" & intBgColor & """>" & objRs("Showed") & "</td>" & vbCrLf)
                        Response.Write("<td bgcolor=""" & intBgColor & """>" & objRs("Average") & "</td>" & vbCrLf)
                        Response.Write("<td bgcolor=""" & intBgColor & """>" & objRs("Birth") & "</td>" & vbCrLf)
                    Response.Write("</tr>")
                    objRs.MoveNext()
                Loop
            Response.Write("</table>")
        End If
    Set objRs = Nothing
   
//>Rune
Avatar billede kaage Nybegynder
01. november 2002 - 11:29 #2
OK, Rune, det fattede jeg så ikke en brik af. Men jeg havde faktisk overvejet at skrive til dig. Da du på et tidspunkt havde deltaget i et næsten ligende spørgsmål. Har du ikke noget lidt mere simpelt ??

Jeg ved det er et link på min txt samt noget SQL order by stuff, men helt præcist hvordan, det ved jeg ikke..

Håber du kan hjælpe.
Kaage
Avatar billede medions Nybegynder
01. november 2002 - 11:36 #3
Hmm... Det er egentlig ret simpelt...

Hvis vi nu siger du har en pil der peger op (pil1) og en pil der peger ned (pil2)

Så siger du bare, hvis der klikkes på pil1 så skal en query dannes hvor level sættes til 1, hvis du klikker på den igen så sættes den til 2!

I din SQL streng skriver du så:

If Requset.QueryString("level") = 1 Then
  strSQL = "SELECT * FROM tabel ORDER BY DESC"
  Set objRs = objConn.Execute(strSQL)
Else
  strSQL = "SELECT * FROM tabel ORDER BY ASC"
  Set objRs = objConn.Execute(strSQL)
End If

og så udskriver du ellers bare dine felter:

While objRs.EOF
  Response.Write(objRs("feltnavn") & "<br>")
objRs.MoveNext()
Wend

//>Rune
Avatar billede kaage Nybegynder
01. november 2002 - 13:37 #4
Du får lige min sovse kode, så kan det være jeg bedre fatter det...

<html>

<head>
<title></title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/domain.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From data ORDER BY status, navn"
Set rs = Conn.Execute(strSQL)


%>



<center>
<table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600">
<tr>
<td colspan="6" align="center"><b>Test</b><br><br></tr>
</tr>
<tr>
<td bgcolor="#cccccc"><b><font color="#FFFFFF">Status:</b></font></td>
<td bgcolor="#cccccc"><b><font color="#FFFFFF"><img src="op.gif" border="0">Navn:<img src="ned.gif" border="0"></a></b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Peger på:</b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Hostes hos:</b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Betales:</b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Ejer:</b></font></td>
</tr>
<%
' Skriv data ud

    bgfarve = "FFFFFF"
    Do While Not rs.EOF
    If bgfarve = "FFFFFF" then
    bgfarve = "CCCCCC"
    else
    bgfarve = "FFFFFF"
    end if

    Response.Write "<tr>"

strURL = rs("status") & ""
If strURL <> "Redirect" Then
    Response.Write "<td align='center' BGCOLOR='#"& bgfarve &"'>" & "<img src='hotel.gif' border=0'>" & "</td>"
else
    Response.Write "<td align='center' BGCOLOR='#"& bgfarve &"'>" & "<img src='redirect.gif' border=0'>" & "</td>"
end if
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & "<a target='_blank' href='http://www." & rs("navn") & "'>" & rs("navn") & "</a></td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & rs("pegerpaa") & "</td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & "<a target='_blank' href='http://www." & rs("liggerhos") & "'>" & rs("liggerhos") & "</a></td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & rs("betalesPr") & "</td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & "<a target='_blank' href=http://www.dk-hostmaster.dk/dkhostcms/bs?query=" & rs("navn") & "&lang=da&pageid=82&action=cmsview" & ">" & rs("navn") & "</a></td>"
    Response.Write "</tr>"
    rs.MoveNext
    Loop

       



Response.Write "</table>"

Conn.Close
Set Conn = Nothing
%>


</table>
</center>
</body>
</html>
Avatar billede medions Nybegynder
01. november 2002 - 13:43 #5
og så vil du ha' den til hvis fx. der bliver klikket på Status så skal den sortere efter status eller?

//>Rune
Avatar billede kaage Nybegynder
01. november 2002 - 13:44 #6
Lige præcis - var det for snørklet formuleret ;o)
Avatar billede medions Nybegynder
01. november 2002 - 13:57 #7
Sådan...

<html>

<head>
<title></title>
<link rel="stylesheet" href="style.css" type="text/css">
</head>

<body>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../db/domain.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From data ORDER BY status, navn"
Set rs = Conn.Execute(strSQL)

    intLevel = Request.QueryString("Level")
    If intLevel = 1 And Request.QueryString("Order_By") <> "" Then
        Set objRs = objConn.Execute("SELECT * FROM tblTabel ORDER BY " & Request.QueryString("Order_By") & " ASC")
    ElseIf intLevel = 2 Then
        Set objRs = objConn.Execute("SELECT * FROM tblTabel ORDER BY " & Request.QueryString("Order_By") & "  DESC")
    Else
        Set objRs = objConn.Execute("SELECT * FROM tblTabel ORDER BY JokeID ASC")
    End If

%>



<center>
<table border="1" cellpadding="3" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600">
<tr>
<td colspan="6" align="center"><b>Test</b><br><br></tr>
</tr>
<tr>
<td bgcolor="#cccccc"><b><font color="#FFFFFF">Status:</b></font></td>
<%
        If Request.QueryString("Order_By") = "JokeID" And Request.QueryString("Level") = 1 Then
            Response.Write("<td bgcolor="#cccccc"><b>Navn <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeID&Level=2""><img src=""op.gif"" border=""0""></a></b></td>")
        ElseIf Request.QueryString("Order_By") = "JokeID" Then
            Response.Write("<td bgcolor="#cccccc"><b>Navn <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeID&Level=1""><img src=""ned.gif"" border=""0""></a></b></td>")
        Else
            Response.Write("<td bgcolor="#cccccc"><b>Navn <a href=""" & Request.ServerVariables("SCRIPT_NAME") & "?Section=ShowJokeList&Order_By=JokeID&Level=2""><img src=""op.gif"" border=""0""></a></b></td>")
        End If
%>
<td bgcolor="#000000"><b><font color="#FFFFFF">Peger på:</b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Hostes hos:</b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Betales:</b></font></td>
<td bgcolor="#000000"><b><font color="#FFFFFF">Ejer:</b></font></td>
</tr>
<%
' Skriv data ud

    bgfarve = "FFFFFF"
    Do While Not rs.EOF
    If bgfarve = "FFFFFF" then
    bgfarve = "CCCCCC"
    else
    bgfarve = "FFFFFF"
    end if

    Response.Write "<tr>"

strURL = rs("status") & ""
If strURL <> "Redirect" Then
    Response.Write "<td align='center' BGCOLOR='#"& bgfarve &"'>" & "<img src='hotel.gif' border=0'>" & "</td>"
else
    Response.Write "<td align='center' BGCOLOR='#"& bgfarve &"'>" & "<img src='redirect.gif' border=0'>" & "</td>"
end if

    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & "<a target='_blank' href='http://www." & rs("navn") & "'>" & rs("navn") & "</a></td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & rs("pegerpaa") & "</td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & "<a target='_blank' href='http://www." & rs("liggerhos") & "'>" & rs("liggerhos") & "</a></td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & rs("betalesPr") & "</td>"
    response.write "<TD BGCOLOR='#"& bgfarve &"'>" & "<a target='_blank' href=http://www.dk-hostmaster.dk/dkhostcms/bs?query=" & rs("navn") & "&lang=da&pageid=82&action=cmsview" & ">" & rs("navn") & "</a></td>"
    Response.Write "</tr>"
    rs.MoveNext
    Loop

       



Response.Write "</table>"

Conn.Close
Set Conn = Nothing
%>


</table>
</center>
</body>
</html>

//>Rune
Avatar billede kaage Nybegynder
01. november 2002 - 14:19 #8
Hvad bliver min url så ?? noget med:

....sort.asp?JokeID=2&Section=ShowJokeList&Order_By=JokeID&Level=2

Synes ikke rigtig jeg kan få den til at vise noget..
Avatar billede medions Nybegynder
01. november 2002 - 15:09 #9
Fandt du ud af det siden du accepterede mit svar?

//>Rune
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