Avatar billede Slettet bruger
05. september 2005 - 14:02 Der er 29 kommentarer

Debatforum seneste indlæg øverst

Hej
Jeg har brugt denne gode løsning til at få vist sidste debatindlæg.
http://www.eksperten.dk/spm/474231

Men jeg vil gerne samtidig have det senest indlæg øverst på listen. Er der nogen der kan det ?
Avatar billede thesurfer Nybegynder
06. september 2005 - 18:06 #1
Du har jo valgt, at den nyeste skal være nederst: "... ORDER BY ID DESC"

For at det skal være øverst, skal du bare bruge "ASC": "... ORDER BY ID ASC"

Man kan vælge at bruge "ASC", eller ingenting: "... ORDER BY ID"

/theSurfer
Avatar billede Slettet bruger
07. september 2005 - 08:47 #2
Hej
Så nemt er det desværre ikke, de ligger nu i den rækkefølge de er oprettet, men datoen der vises er seneste indlæg, og det jeg gerne vil er at det indlæg der senest er rykker op øverst.
Avatar billede thesurfer Nybegynder
07. september 2005 - 23:56 #3
Hmm.. jeg har lige kigget på http://www.hif-fodboldfans.dk/ (direkte til en debat: http://www.hif-fodboldfans.dk/hif-forum/viewmsg.asp?id=591&ForumID=5 ), og det ser rigtigt ud..?

/theSurfer
Avatar billede Slettet bruger
08. september 2005 - 08:59 #4
Det har du ret i, har du nogen ide om hvordan det er lavet ?
Avatar billede thesurfer Nybegynder
08. september 2005 - 16:36 #5
Jeg troede at hif-fodboldfans.dk var din side :-)
Men det er det så ikke..

Hvordan ser din kode ud? Jeg har muligvis lavet en fejl..

Det skal naturligvis hedde: "... ORDER BY DITFELT DESC"

Hvis feltet f.eks. hedder "dato", erstatter du "DITFELT" med dato:

"... ORDER BY dato DESC"

/theSurfer
Avatar billede Slettet bruger
09. september 2005 - 08:57 #6
Hej
Du får lige hele koden her, hvis du gider kigge på den:
<!--#include file="functions.inc"-->
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM Forums WHERE (ID = " & Request("ForumID") & ")"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
strForum = rs("Forum")
strDescription = rs("Description")
intForumID = rs("ID")
End If

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID = " & Request("ForumID") & ")"strSQL = strSQL & " AND (OrgThread = True) ORDER BY ID DESC"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ReplyId =" & rs("Id") & ") OR (ID =" & rs("Id") & ") ORDER BY ID DESC"
Set formatDate = myConn.Execute(strSQL)
If not (formatDate.BOF Or formatDate.EOF) Then
dtmFormatDate = formatDate("FormDate")
End If

strSQL = "SELECT Count(*) AS ItemCount FROM Entries WHERE (ReplyID = " & rs("Id") & ") AND (OrgThread <> TRUE)"
Set recordCount = myConn.Execute(strSQL)
strHTML = strHTML & "<tr><td><a href=""viewmsg.asp?id=" & rs("ID") & "&ForumID=" & intForumID & """>" & Server.HTMLEncode(rs("Subject")) & "</font></a></td>"
strHTML = strHTML & "<td valign=top>" & recordCount("ItemCount") & "</font></td>"
strHTML = strHTML & "<td valign=top>" & dtmFormatDate & "</font></td></tr>"
rs.MoveNext
Loop
End If
myConn.Close
Set myConn = Nothing
%>
<html>

<head>
<title>Debatforum [ Indlæg ]</title>
</head>

<body bgcolor text="#000000" link="#000000" vlink="#000000" alink="#FFFFFF" topmargin="2"
leftmargin="0" marginwidth="0" marginheight="2">

<table border="1" width="600" cellspacing="0" cellpadding="5" bgcolor
bordercolor="#FFFFFF">
  <tr>
    <td width="596" colspan="2" bgcolor="#AFB9CA"><strong>Forum: <%=strForum%></strong><p>&nbsp;</td>
  </tr>
  <tr>
    <td valign="top" align="left" width="70%"><font face="Ariel"><%=strDescription%></font><p>&nbsp;</p>
    <p>Hvis du vil vil svare på et indlæg klik på indlæg/emne</td>
    <td valign="top" align="left" nowrap width="30%">&nbsp;<ul type="square">
      <li><a href="default.asp"><font face="Verdana"><b><small>Til oversigt</small></b></font></a></li>
    </ul>
    <p>&nbsp;<ul type="square">
      <li><font face="Verdana"><strong><a href="forumpost.asp?ForumId=<%=intForumID%>"><small>Opret
        indlæg</small></a><br>
        &nbsp;&nbsp; </strong></font></li>
    </ul>
    </td>
  </tr>
  <tr>
    <td width="598" colspan="2"><table border="1" width="100%" cellspacing="0" cellpadding="2"
    bordercolor="#AFB9CA">
      <tr>
        <td width="234" bgcolor="#AFB9CA"><strong>Indlæg/emne</strong></td>
        <td width="37" bgcolor="#AFB9CA" align="center"><strong>Svar</strong></td>
        <td width="117" bgcolor="#AFB9CA" align="center"><strong>Seneste indlæg</strong></td>
      </tr>
<%=strHTML%>
    </table>
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede thesurfer Nybegynder
12. september 2005 - 10:42 #7
Min comp er til rep, så jeg er ikke online så meget..

Men har du prøvet 08/09-2005 16:36:01 ?

Dvs, "... order by [date] desc" ..?

Hvilken SQL sætning er det?
Avatar billede Slettet bruger
16. september 2005 - 11:39 #8
Hej
Undskyld jeg har været lidt længe om det. Uanset havd jeg vælger sorterer den på hvornår indlægget er oprettet og ikke hvornår der sidst er lagt et svar.
Avatar billede thesurfer Nybegynder
19. september 2005 - 13:37 #9
Du sammenligner jo ikke med noget dato-felt..? Hvor gør du det henne?

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 13:43 #10
Det ved jeg faktisk ikke ?
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:18 #11
Så er det nok der, problemet er :-)

Har du overhovedet fulgt instruktionerne i indlægget 12/09-2005 10:42:57? Hvis ikke, gør det lige..

Ellers, prøv at tilføje " order by NavnetPåDitDatoFelt" til SQL-linien:

strSQL = "SELECT Count(*) AS ItemCount FROM Entries WHERE (ReplyID = " & rs("Id") & ") AND (OrgThread <> TRUE) order by NavnetPåDitDatoFelt"
Set recordCount = myConn.Execute(strSQL)


Hvis der er noget du ikke forstår, skal du sige til.. med det samme, så jeg ikke skal gættte mig frem..

Og nu hvor du er igang, kom lige med navnene og typerne på alle dine felter (i databasen).

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 14:30 #12
Hej
Min kode ser sådan ud:
<!--#include file="functions.inc"-->
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM Forums WHERE (ID = " & Request("ForumID") & ")"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
strForum = rs("Forum")
strDescription = rs("Description")
intForumID = rs("ID")
End If

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID = " & Request("ForumID") & ")"
strSQL = strSQL & " AND (OrgThread = True)ORDER BY ID DESC"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ReplyId =" & rs("Id") & ") OR (ID =" & rs("Id") & ") ORDER BY ID DESC"
Set formatDate = myConn.Execute(strSQL)
If not (formatDate.BOF Or formatDate.EOF) Then
dtmFormatDate = formatDate("FormDate")
End If

strSQL = "SELECT Count(*) AS ItemCount FROM Entries WHERE (ReplyID = " & rs("Id") & ") AND (OrgThread <> TRUE)"
Set recordCount = myConn.Execute(strSQL)
strHTML = strHTML & "<tr><td><a href=""viewmsg.asp?id=" & rs("ID") & "&ForumID=" & intForumID & """>" & Server.HTMLEncode(rs("Subject")) & "</font></a></td>"
strHTML = strHTML & "<td valign=top>" & recordCount("ItemCount") & "</font></td>"
strHTML = strHTML & "<td valign=top>" & dtmFormatDate & "</font></td></tr>"
rs.MoveNext
Loop
End If
myConn.Close
Set myConn = Nothing
%>
<html>

<head>
<title>Debatforum [ Indlæg ]</title>
</head>

<body bgcolor text="#000000" link="#000000" vlink="#000000" alink="#FFFFFF" topmargin="2"
leftmargin="0" marginwidth="0" marginheight="2">

<table border="1" width="600" cellspacing="0" cellpadding="5" bgcolor
bordercolor="#FFFFFF">
  <tr>
    <td width="596" colspan="2" bgcolor="#AFB9CA"><strong>Forum: <%=strForum%></strong><p>&nbsp;</td>
  </tr>
  <tr>
    <td valign="top" align="left" width="70%"><font face="Ariel"><%=strDescription%></font><p>&nbsp;</p>
    <p>Hvis du vil vil svare på et indlæg klik på indlæg/emne</td>
    <td valign="top" align="left" nowrap width="30%">&nbsp;<ul type="square">
      <li><a href="default.asp"><font face="Verdana"><b><small>Til oversigt</small></b></font></a></li>
    </ul>
    <p>&nbsp;<ul type="square">
      <li><font face="Verdana"><strong><a href="forumpost.asp?ForumId=<%=intForumID%>"><small>Opret
        indlæg</small></a><br>
        &nbsp;&nbsp; </strong></font></li>
    </ul>
    </td>
  </tr>
  <tr>
    <td width="598" colspan="2"><table border="1" width="100%" cellspacing="0" cellpadding="2"
    bordercolor="#AFB9CA">
      <tr>
        <td width="234" bgcolor="#AFB9CA"><strong>Indlæg/emne</strong></td>
        <td width="37" bgcolor="#AFB9CA" align="center"><strong>Svar</strong></td>
        <td width="117" bgcolor="#AFB9CA" align="center"><strong>Seneste indlæg</strong></td>
      </tr>
<%=strHTML%>
    </table>
    </td>
  </tr>
</table>
</body>
</html>
Jeg har prøvet dit forslag med ASC og DESC og så viser den som sagt bare datoen for indlæggets oprettelse, hvor skal jeg sætte den kode ind du foreslår ?
Feltet i DB er date og typen er Dato og klokkeslet.
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:33 #13
hmm.. jeg troede at jeg havde sat det logisk op.. men det havde jeg så åbenbart ikke.. :-)

Der er kun 1 sted, hvor der står:  (OrgThread <> TRUE)

Så skal det være "[date]" i stedet for "NavnetPåDitDatoFelt"

Se 19/09-2005 14:18:13 igen..

..faktisk det samme med 08/09-2005 16:36:01 og 12/09-2005 10:42:57 :-)

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 14:44 #14
Ja, jeg kunne selvfølgelig også læse ordentligt, men - nu får jeg denne fejl
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression 'DATE' as part of an aggregate function.

debatforum/forumthreads.asp, line 27
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:46 #15
Skriv altid SQL linien.. hvad står der der?

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 14:51 #16
Du får hele igen:
<!--#include file="functions.inc"-->
<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM Forums WHERE (ID = " & Request("ForumID") & ")"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
strForum = rs("Forum")
strDescription = rs("Description")
intForumID = rs("ID")
End If

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID = " & Request("ForumID") & ")"
strSQL = strSQL & " AND (OrgThread = True)ORDER BY ID DESC"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ReplyId =" & rs("Id") & ") OR (ID =" & rs("Id") & ") ORDER BY ID DESC"
Set formatDate = myConn.Execute(strSQL)
If not (formatDate.BOF Or formatDate.EOF) Then
dtmFormatDate = formatDate("FormDate")
End If

strSQL = "SELECT Count(*) AS ItemCount FROM Entries WHERE (ReplyID = " & rs("Id") & ") AND (OrgThread <> TRUE) ORDER BY Date"
Set recordCount = myConn.Execute(strSQL)
strHTML = strHTML & "<tr><td><a href=""viewmsg.asp?id=" & rs("ID") & "&ForumID=" & intForumID & """>" & Server.HTMLEncode(rs("Subject")) & "</font></a></td>"
strHTML = strHTML & "<td valign=top>" & recordCount("ItemCount") & "</font></td>"
strHTML = strHTML & "<td valign=top>" & dtmFormatDate & "</font></td></tr>"
rs.MoveNext
Loop
End If
myConn.Close
Set myConn = Nothing
%>
<html>

<head>
<title>Debatforum [ Indlæg ]</title>
</head>

<body bgcolor text="#000000" link="#000000" vlink="#000000" alink="#FFFFFF" topmargin="2"
leftmargin="0" marginwidth="0" marginheight="2">

<table border="1" width="600" cellspacing="0" cellpadding="5" bgcolor
bordercolor="#FFFFFF">
  <tr>
    <td width="596" colspan="2" bgcolor="#AFB9CA"><strong>Forum: <%=strForum%></strong><p>&nbsp;</td>
  </tr>
  <tr>
    <td valign="top" align="left" width="70%"><font face="Ariel"><%=strDescription%></font><p>&nbsp;</p>
    <p>Hvis du vil vil svare på et indlæg klik på indlæg/emne</td>
    <td valign="top" align="left" nowrap width="30%">&nbsp;<ul type="square">
      <li><a href="default.asp"><font face="Verdana"><b><small>Til oversigt</small></b></font></a></li>
    </ul>
    <p>&nbsp;<ul type="square">
      <li><font face="Verdana"><strong><a href="forumpost.asp?ForumId=<%=intForumID%>"><small>Opret
        indlæg</small></a><br>
        &nbsp;&nbsp; </strong></font></li>
    </ul>
    </td>
  </tr>
  <tr>
    <td width="598" colspan="2"><table border="1" width="100%" cellspacing="0" cellpadding="2"
    bordercolor="#AFB9CA">
      <tr>
        <td width="234" bgcolor="#AFB9CA"><strong>Indlæg/emne</strong></td>
        <td width="37" bgcolor="#AFB9CA" align="center"><strong>Svar</strong></td>
        <td width="117" bgcolor="#AFB9CA" align="center"><strong>Seneste indlæg</strong></td>
      </tr>
<%=strHTML%>
    </table>
    </td>
  </tr>
</table>
</body>
</html>
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:53 #17
Jeg bliver nødt til at henvise til mine tidligere indlæg :-)

Som du kan se, har jeg skrevet "[date]".. dvs, der skal "[" og "]" udenom "date".. ret det og prøv igen.

/theSurfer
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:56 #18
PS: Der er en masse ord, der er reserveret.. dem må man ikke direkte bruge.. derfor skal der "[]" udenom..

Det er bl.a.: select, count, as, from, where, and, or, by, date .... listen er lang

Læg mærke til, at "by" (der lyder dansk, men er det ikke) også skal være "[by]"..

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 14:57 #19
Det ændrer desværre ikke noget:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression '[Date]' as part of an aggregate function.

debatforum/forumthreads.asp, line 27
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:57 #20
Lister med reserverede ord:

Access 97: http://support.microsoft.com/support/kb/articles/Q109/3/12.asp
Access 2002/2003: http://support.microsoft.com/support/kb/articles/Q286/3/35.ASP

Når du vil vælge et ord/navn til dine felter, check listerne, eller brug altid "[]"..

/theSurfer
Avatar billede thesurfer Nybegynder
19. september 2005 - 14:58 #21
og vi prøver lige igen... skriv altid SQL linie.. altså, linien der melder fejl i..

Jeg skal altid bruge disse oplysninger:

- fejlmeddelelsen (kopier og sæt ind)

- selve linien der er fejl i

- eventuelle værdier/variabler der hentes/bruges

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 15:07 #22
Fejlen:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression '[Date]' as part of an aggregate function.

Linien der melder fejl:
strSQL = "SELECT Count(*) AS ItemCount FROM Entries WHERE (ReplyID = " & rs("Id") & ") AND (OrgThread <> TRUE) ORDER BY [Date]"
Avatar billede thesurfer Nybegynder
19. september 2005 - 15:10 #23
Prøv med:

strSQL = "SELECT Count(*) AS ItemCount FROM Entries WHERE ((ReplyID = " & rs("Id") & ") AND (OrgThread <> TRUE)) ORDER BY [Date]"

Og lige et spørgsmål.. er "Date"-feltet (som du vil sortere efter) også i "Entries"-tabellen?

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 15:13 #24
Det giver samme fejl, samme linie:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] You tried to execute a query that does not include the specified expression '[Date]' as part of an aggregate function.
Ja, det er i tabellen.
Avatar billede thesurfer Nybegynder
19. september 2005 - 15:18 #25
Hmm.. jeg tror faktisk at det er det forkerte sted.. det er nok her, at "ID" skal være "[date]":

strSQL = strSQL & " AND (OrgThread = True)ORDER BY ID DESC"

Denne linie fremkommer kun 1 gang i din kode..

Hvis det ikke er alt for besværligt, omdøb "Date"-feltet i databasen, til f.eks. "Dato".. husk også at opdatere alle henvisninger til "Date"-feltet.. det skulle meget gerne kun være dem, der hedder "[date]"..

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 15:27 #26
Hvid jeg ændrer til det sorterer den stadig på oprindeligt indlæg, men tak for indsatsen
Avatar billede thesurfer Nybegynder
19. september 2005 - 15:29 #27
hmm.. du har 4 SQL sætninger.. prøv at sætte dem alle til " order by [date]" ..
Husk at lave backup..

Hvis det ikke virker, kan jeg ikke lige se hvad det er der går galt..

/theSurfer
Avatar billede Slettet bruger
19. september 2005 - 15:38 #28
Det har jeg nu prøvet, det virker heller ikke, hvis du lægger et svar, vil jeg gerne give point for indsatsen
Avatar billede thesurfer Nybegynder
19. september 2005 - 15:41 #29
Nej, tak.. du snupper dem bare selv (smid selv et svar, osv..) -- Husk at acceptere svaret..

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