Avatar billede Slettet bruger
21. april 2007 - 10:18 Der er 24 kommentarer og
3 løsninger

"Order by" hjælp

Jeg har en table.
Den viser 3 koloner.
Jeg vil gerne have det sådan, at når man trykke på overskriften for en kolone, så sortere den efter den.

Det vil sige hvis man trykker på Titel så sotere den efter title... osv...

Hvordan gør man det.
Jeg køre MySQL database.

DDD
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 10:28 #1
indsæt følgende ved din overskrift
<a href="test.asp?kolonne=<%"kolonne"%>">overskrift</a>
'øverst på din side så følgende

<%
if request("kolonne") <> "" then
kolonne = request("kolonne")
strSQL = "Select * from dindatabase order by "& kolonne &""

else
strSQL = "Select * from dindatabase"

'og så kommer det du plejer
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 10:29 #2
test.asp skal udskiftes med det din side hedder
Avatar billede jansangill Nybegynder
21. april 2007 - 10:40 #3
<%
'array
dim id(3)



' Changing order ved hjælp af en array og session som skal huske hvad brugereren trykkede på sidst
    upOrDown = "asc"
for t = 1 to 4
    find = "id("&t&")"
    if request.QueryString(find) <> "" then
    sortItOut = request.QueryString(find)
    flag = true

        if session("knap") = "asc" then
            session("knap") = "desc"
            upOrDown = "desc"
        else
            session("knap") = "asc"
        end if
       
    end if

next

    if not flag then
    sortItOut = "Dato"
    UpOrDown = "desc"
    end if
%>

//Du må selv lige forbinde til din server.
<%SQL = ("select * from besked ORDER BY "&sortItOut & " "&upOrDown&"")%>

<!--Table til at forklare titlerne i databasen, plus hjælpe med at variablerne sortItOut og upOrDown virker -->

<table>
<tr>
<td><a href="<%=request.ServerVariables("URL")%>?id(1)=Navn">Navn</a></td>
<td><a href="<%=request.ServerVariables("URL")%>?id(2)=Firma">Branche</a></td>
<td ><a href="<%=request.ServerVariables("URL")%>?id(3)=Dato">Dato</a></td></tr>
</table>

Dette er godt nok til Access, men pricipperne er der. Som du kan se er der 3 overskrifter man kan vælge imellem om de vil være asc eller desc.
Avatar billede Slettet bruger
21. april 2007 - 10:43 #4
Den brokker sig over denne linje:

<a href="index.asp?title=<%"title"%>"><font face="verdana" size="2"><b><%=rs("title").Value %></b> <i>(<%=rs("titleDK").Value %>)</i></font></a>
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 10:46 #5
<a href="index.asp?title=<%="title"%>"><font face="verdana" size="2"><b><%=rs("title")%></b> <i>(<%=rs("titleDK").Value %>)</i></font></a>
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 10:47 #6
' hov sådan
<a href="index.asp?title=<%="title"%>"><font face="verdana" size="2"><b><%=rs("title")%></b> <i>(<%=rs("titleDK")%>)</i></font></a>
Avatar billede Slettet bruger
21. april 2007 - 11:00 #7
Hehe det er godt... Jeg er ikke helt vågn...

JEg havde da også sat den ind forkert..

Den virker heller ikke her:

<a href="index.asp?title=<%"title"%>"><font face="verdana" size="4"><b>Navn</b></a>




selvm der i toppen står:

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConnection

strQuery = "SELECT * FROM Liste Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

if request("title") <> "" then
title = request("title")
strSQL = "Select * from Film order by "& title &""

else
strSQL = "Select * FROM Film Order By Tilfoejet Desc"

end if


DDD
Avatar billede Slettet bruger
21. april 2007 - 11:11 #8
jansangill --> Jeg er desværre for nOOb til at kunne finde ud af den der.

DDD
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 11:27 #9
'du skal se dig for der mangler flere =

Den virker heller ikke her:

<a href="index.asp?title=<%="title"%>"><font face="verdana" size="4"><b>Navn</b></a>


Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConnection

strQuery = "SELECT * FROM Liste Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

if trim(request("title")) <> "" then
title = request("title")
strSQL = "Select * from Film order by "& title &""

else
strSQL = "Select * FROM Film Order By Tilfoejet Desc"

end if
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 11:30 #10
'sådan skal den være

<a href="index.asp?title=<%="title"%>"><font face="verdana" size="4"><b>Navn</b></a>



Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConnection



if trim(request("title")) <> "" then
title = request("title")
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)

else
strQuery = "Select * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

end if
Avatar billede Slettet bruger
21. april 2007 - 11:34 #11
Det = havde jeg overset.

Nice.. Nu er navn blevet et link.

Men når jeg trykker på det sker der bare ikke noget.
Den viser stadig efter tilfoejelse.
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 11:38 #12
'prøv lige at udskrift title

response.write request("title") ' for at se om der er noget med


if trim(request("title")) <> "" then
title = request("title")
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)

else
strQuery = "Select * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

end if
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 11:38 #13
udskrift  -> udskrive UPS
Avatar billede Slettet bruger
21. april 2007 - 11:51 #14
Hmm underligt..

Når jeg indsætter det du lige skrev.
Så virker det.
Men jeg kan ikke slette den gamle, så virker det ikke.

nu står der alt det her:

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConnection

strQuery = "SELECT * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)


if request("title") <> "" then
title = request("title")

strSQL = "Select * from Film order by "& title &""

else
strSQL = "Select * FROM Film Order By Tilfoejet Desc"

end if


if trim(request("title")) <> "" then
title = request("title")
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)

else
strQuery = "Select * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

end if
Avatar billede Slettet bruger
21. april 2007 - 11:57 #15
Kan det ikke forkortes??

DDD
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 12:01 #16
'forstår ikke helt hvad du mener - hvis du sætter den således virker den så eller hva?

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConnection



if trim(request("title")) <> "" then
title = request("title")
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)

else
strQuery = "Select * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

end if
Avatar billede Slettet bruger
21. april 2007 - 12:09 #17
Ahhh ja okay..

nu virker det..
Jeg havde skrevet det he:

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConnection

strQuery = "SELECT * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)

if trim(request("title")) <> "" then
title = request("title")
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)

else
strQuery = "Select * FROM Film Order By Tilfoejet Desc"
Set rs = Conn.Execute(strQuery)



Det virkede ikke..

Men hvad gør man så hvis den næste kolone skal flettes ind.
Så hvis man trykker på Tilføjet så sotere den efter nyest film?

DDD
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 12:28 #18
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="index.asp?title=<%="Title"%>">Titel</a></td>
    <td><a href="index.asp?title=<%="Tilfoejet"%>">Tilføjet</a></td>
    <td><a href="index.asp?title=<%="link 3"%>">link 3</a></td>
  </tr>
osv....

du skal kun rette i dine linkoverskrifter og huske at variablen title skal have korrekt kolonne navn

</table>
Avatar billede Slettet bruger
21. april 2007 - 12:36 #19
Hvordan sætter jeg tilføj ind i denne:

if trim(request("title")) <> "" then
title = request("title")
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)


Skal jeg sætte et else eller et or ind i midten?

if trim(request("title")) <> "" then
title = request("title")
-----
or trim(request("Tilfoejet")) <> "" then
title = request("Tilfoejet")
-----
strQuery = "Select * from Film order by "& title &""
Set rs = Conn.Execute(strQuery)
Avatar billede Slettet bruger
21. april 2007 - 12:37 #20
Ahhh på den måde...

Hehe.. nice...

Takker
Avatar billede Slettet bruger
21. april 2007 - 12:38 #21
Jeg skulle lige gennemskue det helt..

1000 tak
Avatar billede Slettet bruger
21. april 2007 - 12:40 #22
Hov jeg fandt lige en fejl...

Når jeg trykker på navn vises det rigtigt.
Men når jeg trykker på tilføjet så kommer de ældste først. Det skulle jo være de nyeste først. Hvis jeg bare sætter "DESC" ind så laver den Tilføjet rigtigt, men så vender navn forkert.
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 12:56 #23
ja det er vel ret logisk at hvis du vælger at vise de nyeste først så er det det den sorterer efter og ikke navnet ;-))
Avatar billede Slettet bruger
21. april 2007 - 12:57 #24
Ja... Men hvordan vender man den? Så både navn og tilføjet passer?


DDD
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 13:27 #25
' så angiver du dette

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><a href="index.asp?title=<%="Title,Tilfoejet"%>">Titel</a></td>
    <td><a href="index.asp?title=<%="Tilfoejet,Title"%>">Tilføjet</a></td>
    <td><a href="index.asp?title=<%="link 3"%>">link 3</a></td>
  </tr>

dvs f.eks sætter du navn,tilfoejet desc - så sorterer den først på navn og derefter på tilfoejet
Avatar billede Slettet bruger
21. april 2007 - 13:35 #26
Nice.... rigtigt nice...


1000 1000 tak...
Avatar billede mitbrugernavn Praktikant
21. april 2007 - 13:55 #27
velbekomme og god fornøjelse
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