Avatar billede fomse Nybegynder
30. juli 2004 - 11:30 Der er 9 kommentarer og
1 løsning

Hjælpe med sortering

Jeg har nedenstående hvor jeg gerne vil have et link på "Område:", "Bygherre:" osv... som sorterer efter de felter.

HAr fundet dette spørgsmål: http://www.eksperten.dk/spm/509055 men har ikke kunnet få det til at virke...

visliste1.asp:
<%
dim conn

function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ODBCpath & DBName

end function

'Her skal skal stien stå til din database.mdb - er den placeret i sammen mappe som dette dokument skal det være som nedenfor, hvor database.mdb skal udskiftes med navnet på din database
OpenConn("db.mdb")

'udskift tabelnavn med navet på din tabel
strSQL = "Select * from liste1 Order By aftaleDato Desc"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Conn, 1

top = rs.RecordCount
If top <> 0 then
MyArr = rs.GetRows()
end if
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<strong><font style="font-size: 12px;">Dette er liste 1</font></strong>
<br>
<br>
<a href="opretliste1.asp">Retur til Liste 1 oprettelse</a><br>
<a href="default.asp">Retur til Hovedsiden</a>
<br>
<br>
<table cellspacing="0" cellpadding="0">
<tr>
<td class="Table" width="100"><strong>Område:</strong></td><td class="Table" width="100"><strong>Bygherre:</strong></td><td class="Table" width="100"><strong>Emne:</strong></td><td class="Table" width="100"><strong>Arkitekt:</strong></td><td class="Table" width="100"><strong>Entreprenør:</strong></td><td class="Table" width="100"><strong>Aftaledato:</strong></td><td class="Table" width="100"><strong>Tilmeldingsdato:</strong></td><td class="Table">&nbsp;&nbsp;<strong>Slet</strong>&nbsp;&nbsp;</td><td class="Table">&nbsp;&nbsp;<strong>Flyt</strong>&nbsp;&nbsp;</td>
</tr>
<%
If top <> 0 then
For i=0 to (top-1)
  Response.Write "<tr><td class=""Table"" width=""100"">" & MyArr(1,i) & "</td><td class=""Table"" width=""100"">" & MyArr(2,i) & "</td><td class=""Table"" width=""100"">" & MyArr(3,i) & "</td><td class=""Table"" width=""100"">" & MyArr(4,i) & "</td><td class=""Table"" width=""100"">" & MyArr(5,i) & "</td><td class=""Table"" width=""100"">" & MyArr(6,i) & "</td><td class=""Table"" width=""100"">" & MyArr(7,i) & "</td><td class=""Table"" align=""center""><a href=slet.asp?sletID=" & MyArr(0,i) & ">X</a></td><td class=""Table"" align=""center""><a href=flyt.asp?flytID=" & MyArr(0,i) & ">Ja</a></td></tr>"
Next
End if
%>
</table>


Håber der er en som vil hjælpe.
Fomse:-)
Avatar billede phineas_phreak Nybegynder
30. juli 2004 - 11:50 #1
det er denne linje der er interessant:
strSQL = "Select * from liste1 Order By aftaleDato Desc"

og så lav noget i denne stil:

sortering = Request.Querystring("sortering")

' db connect

strSQL = "Select * from liste1 Order By " & sortering &""

så vil du kunne kalde siden således:

side1.asp?sortering=Bygherre

side1.asp?sortering=område


det er selvfølgelig ikke en optimal måde, og den sorterer heller ikke desc ved endnu et klik, men det er bedre end ingenting
Avatar billede fomse Nybegynder
30. juli 2004 - 11:57 #2
Har gjort således:
<%
dim conn

function OpenConn( DBName )

Set Conn = Server.CreateObject("ADODB.Connection")
ODBCpath = left(request.servervariables("PATH_TRANSLATED"), instrrev(request.servervariables("PATH_TRANSLATED"), "\"))
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ODBCpath & DBName

end function

sortering = Request.Querystring("sortering")

'Her skal skal stien stå til din database.mdb - er den placeret i sammen mappe som dette dokument skal det være som nedenfor, hvor database.mdb skal udskiftes med navnet på din database
OpenConn("db.mdb")

'udskift tabelnavn med navet på din tabel
strSQL = "Select * from liste1 Order By " & sortering &" Desc"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open strSQL, Conn, 1

top = rs.RecordCount
If top <> 0 then
MyArr = rs.GetRows()
end if
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

<strong><font style="font-size: 12px;">Dette er liste 1</font></strong>
<br>
<br>
<a href="opretliste1.asp">Retur til Liste 1 oprettelse</a><br>
<a href="default.asp">Retur til Hovedsiden</a>
<br>
<br>
<table cellspacing="0" cellpadding="0">
<tr>
<td class="Table" width="100"><strong><a href="visliste1.asp?sortering=omr">Område:</a></strong></td><td class="Table" width="100"><strong>Bygherre:</strong></td><td class="Table" width="100"><strong>Emne:</strong></td><td class="Table" width="100"><strong>Arkitekt:</strong></td><td class="Table" width="100"><strong>Entreprenør:</strong></td><td class="Table" width="100"><strong>Aftaledato:</strong></td><td class="Table" width="100"><strong>Tilmeldingsdato:</strong></td><td class="Table">&nbsp;&nbsp;<strong>Slet</strong>&nbsp;&nbsp;</td><td class="Table">&nbsp;&nbsp;<strong>Flyt</strong>&nbsp;&nbsp;</td>
</tr>
<%
If top <> 0 then
For i=0 to (top-1)
  Response.Write "<tr><td class=""Table"" width=""100"">" & MyArr(1,i) & "</td><td class=""Table"" width=""100"">" & MyArr(2,i) & "</td><td class=""Table"" width=""100"">" & MyArr(3,i) & "</td><td class=""Table"" width=""100"">" & MyArr(4,i) & "</td><td class=""Table"" width=""100"">" & MyArr(5,i) & "</td><td class=""Table"" width=""100"">" & MyArr(6,i) & "</td><td class=""Table"" width=""100"">" & MyArr(7,i) & "</td><td class=""Table"" align=""center""><a href=slet.asp?sletID=" & MyArr(0,i) & ">X</a></td><td class=""Table"" align=""center""><a href=flyt.asp?flytID=" & MyArr(0,i) & ">Ja</a></td></tr>"
Next
End if
%>
</table>

Med der kommer en fejl:

Microsoft JET Database Engine error '80040e14'

Syntax error in ORDER BY clause.

/Leif/visliste1.asp, line 37
Avatar billede fomse Nybegynder
30. juli 2004 - 12:26 #3
Har løst det! Tilføjede en If sortering = "" then sortering = "aftaleDato"
I tilfælde af at der ikke var valgt noget at sorterer efter...

Smider du lige et svar?

Tak for hjælpen.

Fomse:-)
Avatar billede fomse Nybegynder
30. juli 2004 - 12:55 #4
Kanman ikke bare lave 2 SQL-sætninger en der sorterer Asc og en Desc og så lave en pil op og en pil ned som link og kalde en sortering1 og en sortering2??

Fomse:-)
Avatar billede phineas_phreak Nybegynder
30. juli 2004 - 13:57 #5
jeg har lavet en løsning med nogle if sætninger som sætter sortering = "aftaledato desc" hvis sortering = "aftaleDato"
eller sortering = "aftaledato" hvis sortering = "aftaleDato desc;"

men det er vist ukorrekt at rette i sin SQL på den måde, men det var godt nok til mig.

ellers godt du fandt ud af det
Avatar billede fomse Nybegynder
30. juli 2004 - 14:24 #6
Kan du vise mig hvordan med de IF'er?

Fomse:-)
Avatar billede phineas_phreak Nybegynder
30. juli 2004 - 15:25 #7
så skal du bruge nogle flere variabler. det kan f.eks. se således ud (variablerne er måske lidt uheldigt valgt):

sortering = Request.Querystring("sortering")

If sortering= "" Then
  sortering = "aftaledato"
  aftaledato = "aftaledato desc;"
End if

If sortering = "aftaledato" then
  aftaledato = "aftaledato desc"
end if

If sortering = "aftaledato desc" then
  aftaledato = "aftaledato"
end if

og så skal din SQL se således ud:

strSQL = "Select * from liste1 Order By " & sortering & "

og nu kalder du f.eks. siden således:

<a href="side1.asp?sortering=<%= aftaledato %>">sorter efter aftale dato</a>

men der må være en smartere måde at lave det på.
Avatar billede fomse Nybegynder
30. juli 2004 - 18:37 #8
Håber der er en nemmere måde!!! Ellers bliver det jo et hav af IF sætninger hvis man skal kunne det på alle felter.....

Søger lidt videre og vender tilbage

Fomse:-)
Avatar billede larsen45 Juniormester
19. juni 2010 - 13:59 #9
Hejsa ved godt dette her er et gammel indlæg, men har lige lidt spørgsmål til nedestående:

strSQL = "Select * from tabel Order By " & sortering3 & "," & sortering2 & "," & sortering1 & ""
set RS = conn.execute(strSQL)

Kan i se hvad pokker der fejler.
Første sætning virker, næste sætning virker også, men sidste sætning sortering3 virker ikke.

Er ved at blive skør af den fejl.
Avatar billede larsen45 Juniormester
19. juni 2010 - 14:00 #10
eller sludder det er selvfølgelig sortering1 den sidste linie jeg mener som fejler.
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