Avatar billede rolfenstein Nybegynder
04. november 2006 - 14:33 Der er 8 kommentarer

vrøvl med kode til mit forum

Hejsa!!!
Jeg har et forum, og mit problem er at jeg gerne vil have de poster der sidst er blevet skrevet i til at ligge øverst. men aner ikke lige hvordan, så derfor håber jeg der er en venlig sjæl der kan finde ud af hvordan jeg skal ændre i min kode:


<%
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

strSQL = "SELECT * FROM Forums"
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 (ForumID =" & rs("Id") & ") ORDER BY ID DESC"
        Set formatDate = myConn.Execute(strSQL)
        If (formatDate.BOF Or formatDate.EOF) Then
            dtmFormatDate = "Ingen indlæg"
        Else
            dtmFormatDate = formatDate("FormDate")
        End If
        strSQL = "SELECT Count(*) AS ItemCount FROM Entries Where (ForumID = " & rs("Id") & ")"
        Set recordCount = myConn.Execute(strSQL)
        strHTML = strHTML & "<tr><td bgcolor=#6699CC><strong><font face=Verdana size=2><a href=""forumthreads.asp?forumid=" & rs("ID") & """>" & rs("Forum") & "</a></strong><br>" & rs("Description") & "</font></td>"
        strHTML = strHTML & "<td bgcolor=#6699CC valign=top><center><font face=Verdana size=2>" & recordCount("ItemCount") & "</font></center></td>"
        strHTML = strHTML & "<td bgcolor=#6699CC valign=top><font face=Verdana size=2>" & dtmFormatDate & "</font></td></tr>"
        rs.MoveNext
    Loop
End If
myConn.Close
Set myConn = Nothing
%>
Avatar billede Slettet bruger
04. november 2006 - 17:02 #1
hej hvad med:

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID =" & rs("Id") & ") ORDER BY ID"


\Dan
Avatar billede rolfenstein Nybegynder
04. november 2006 - 18:39 #2
Det virker ikke
Avatar billede thesurfer Nybegynder
06. november 2006 - 00:06 #3
Jeg går ud fra at [date] er dato feltet i din database..

Så kan du bare gøre sådan her: order by [date]

"desc" er standard.. hvis ikke, tilføj det: order by [date] desc
Avatar billede rolfenstein Nybegynder
06. november 2006 - 00:26 #4
mener du:

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID =" & rs("Id") & ") ORDER BY date DESC"

fordi det vil den ikke
Avatar billede rolfenstein Nybegynder
06. november 2006 - 00:30 #5
Men feltet med Date liller i tabellen: Entries
og jeg tror det er den anden tabel der hedder: Forums  hvor de ting jeg vil have styr på  via date, og i den ligger det ikke en Date, kun i Entries
Avatar billede thesurfer Nybegynder
06. november 2006 - 00:45 #6
Det skulle være order by [date] desc

Men ifølge dit sidste indlæg, er det tabellen "Entries" der indeholder datoen, som du vil sortere efter?

Men jeg kan ikke se at du hiver datoen ud, fra tabellen "Entries"..?
Avatar billede thesurfer Nybegynder
06. november 2006 - 00:46 #7
Og jeg forstår ikke helt denne her:

Set recordCount = myConn.Execute(strSQL)

Du bruger ikke "recordCount", men kun "rs" efter den linie?
Avatar billede thesurfer Nybegynder
06. november 2006 - 00:49 #8
Ahh.. ok.. Du bruger det bare til at vise antallet af poster..

Du burde kunne nøjes med:


' jeg er ikke sikker på, at det er nødvendigt at hoppe til sidste post, og derefter første post,
' men det er noget jeg har set før..
rs.movelast
rs.movefirst

do while not rs.eof
' din kode
rs.movenext
loop

response.write "Antal ialt: " & rs.count
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