Avatar billede willsonn Nybegynder
07. marts 2004 - 16:29 Der er 29 kommentarer og
2 løsninger

Skriver ikke dato for "Seneste indlæg"

Nu har jeg for alvor problemer - og så endda på et område hvor jeg ikke aner en dyt om tingene, så jeg håber I kan hjælpe mig til en løsning.

Jeg har et debat forum på min hjemmeside (www.hif-fodboldfans.dk) og det har længe irriteret mig, at den ikke skriver datoen for seneste indlæg, men blot datoen for oprettelsen af den pågældende tråd.
Der må være en fejl i asp-koden hævder min makker på siden, men han har ikke tid/mulighed for at hjælpe lige pt.

Jeg går ud fra at I skal bruge denne kode for at finde fejlen:

<%
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><a href=""forumthreads.asp?forumid=" & rs("ID") & """>" & rs("Forum") & "</a></strong><br>" & rs("Description") & "</font></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
%>

Håber på lidt hjælp her, for det irriterer mig grænseløst!
Avatar billede willsonn Nybegynder
07. marts 2004 - 16:52 #1
koden ovenfor er fra mappen "forumthreads.asp"

Måske skal I også bruge koden fra "viewmsg.asp" - så her er den:

<%
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
    intForumID = rs("ID")
    strForum = rs("Forum")
    strDescription = rs("Description")
End If

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ID = " & Request("Id") & ") AND (OrgThread = True)"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    intMessageID = rs("ID")
    strSubject = Server.HTMLEncode(rs("Subject"))
    strName = Server.HTMLEncode(rs("Name"))
    strEmail = Server.HTMLEncode(rs("Email"))
    dtmFormDate = rs("FormDate")
    dtmFormTime = rs("FormTime")
    strComment = Replace(Server.HTMLEncode(rs("Comment")),vbCrLf,"<br>")
End If

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ReplyId = " & Request("Id") & ") AND (OrgThread = False) ORDER BY ID DESC"
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    Do While Not rs.EOF
        strSvar = strSvar & "<li><font face=Verdana size=1><strong><a href=""viewmsg.asp?Id=" & intMessageID & "&ForumID=" & intForumID & "&Showsub=" & rs("ID") & """>Re: " & strSubject & "</a> <em>(" & Server.HTMLEncode(rs("Name")) & ", " & rs("FormDate") & " " & rs("FormTime") & ")</em></strong></font></li>"
        If Len(Request("Showsub")) > 0 And Clng(Request.QueryString("Showsub")) = Clng(rs("ID")) Then
            strSvar = strSvar & "<br><font face=Verdana size=2>" & Replace(Server.HTMLEncode(rs("Comment")),vbCrLf,"<br>") & "</font><br>&nbsp;"
        End If
        rs.MoveNext
    Loop
End If
rs.Close
myConn.Close
Set myConn = Nothing
%>
Avatar billede dr-data Nybegynder
07. marts 2004 - 17:06 #2
umiddelbart, kan jeg ikke se hvad der kan være fejl, men måske noget med, der hvor der i sql linien står "Format$([date],...", hvordan/hvilke felter har du databasen?
Avatar billede willsonn Nybegynder
07. marts 2004 - 17:11 #3
Er desværre ikke helt med på hvilke felter du mener i databasen. Og som sagt er jeg totalt noob på det her felt :o)
Avatar billede dr-data Nybegynder
07. marts 2004 - 17:16 #4
jeg kan se i koden, at du har følgende felter/kolonner i tabellen "Entries"
ID  Subject  Name  Email  FormDate  FormTime  Comment

hvilke har du ellers ?
Avatar billede willsonn Nybegynder
07. marts 2004 - 17:19 #5
id, ForumId, name, email, subject, comment, date, replies, orgthread, replyid

det er dem som er i tabellen
Avatar billede dr-data Nybegynder
07. marts 2004 - 17:33 #6
ok, fejlen ligger i forumthreads.asp

du skal ændre
        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"
til
        strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ForumID =" & rs("Id") & ") ORDER BY ID ASC"
altså: DESC til ASC, idet den sorterer forkert...
Avatar billede willsonn Nybegynder
07. marts 2004 - 17:54 #7
nej, den var gal...som du kan se på siden sætter den bare de ældste indlæg øverst nu :o(

Øv...andre forslag?
Avatar billede dr-data Nybegynder
07. marts 2004 - 18:14 #8
ja, prøver lige igen :)
Avatar billede willsonn Nybegynder
07. marts 2004 - 18:15 #9
Du er mere end velkommen...så retter jeg lige ASC til DESC igen.
Avatar billede willsonn Nybegynder
07. marts 2004 - 18:21 #10
Jeg er tilbage ved 21-tiden...håber du/I finder løsningen på problemet i mellemtiden
Avatar billede dr-data Nybegynder
07. marts 2004 - 18:22 #11
jeg kan ikke helt få følgende til at passe med det der kommer ud....

<%
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><a href=""forumthreads.asp?forumid=" & rs("ID") & """>" & rs("Forum") & "</a></strong><br>" & rs("Description") & "</font></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
%>

er det den nuværende kode ? (forum_threads.asp)
Avatar billede dr-data Nybegynder
07. marts 2004 - 18:23 #12
det er denne linie jeg undrer mig over...

        strHTML = strHTML & "<tr><td><a href=""forumthreads.asp?forumid=" & rs("ID") & """>" & rs("Forum") & "</a></strong><br>" & rs("Description") & "</font></td>"
Avatar billede willsonn Nybegynder
07. marts 2004 - 21:17 #13
dr-data> Ja, det er de nuværende script koder til hhv. forumthreads.asp og viewmsg.asp.
Derudover er der i hovedmappen til forumet: default.asp, forumpost.asp, functions.inc, functions_copy(1).inc, WS_FTP.LOG og en readme.txt-fil. Og så er der selvfølgelig en database med en access-fil ved navn hif-forum.mdb

Der må være en dygtig ekspert, der kan hjælpe mig
Avatar billede l_otto Nybegynder
09. marts 2004 - 16:28 #14
hvilken slags database arbejder du med ?
Avatar billede willsonn Nybegynder
09. marts 2004 - 17:09 #15
Hmmm...godt spørgsmål. Det er vist Access.
Avatar billede willsonn Nybegynder
09. marts 2004 - 17:11 #16
jeg er som sagt slet ikke inde i ASP, databaser osv., men håbede at problemet ikke var svært at løse, hvilket det åbenbart tyder på.
Avatar billede dr-data Nybegynder
09. marts 2004 - 18:13 #17
ok, prøv at ændre i forumthreads.asp:

        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

til

        strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ReplyID =" & 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
Avatar billede dr-data Nybegynder
09. marts 2004 - 18:13 #18
ForumId til ReplyId
Avatar billede willsonn Nybegynder
09. marts 2004 - 22:12 #19
Den ændring hjælper heller ikke - det fjerner blot alle indlæggene i oversigten, så den er helt tom.
Det må da være muligt, at få den til at gøre som den skal!?
Avatar billede dr-data Nybegynder
10. marts 2004 - 01:39 #20
du kan evt. sende databasen til mig på eksperten@miransky.dk, så jeg kan se hvordan dine data bliver gemt, så skal jeg nok særge for at forklare hvordan, til ekspertens øvrige medlemmer... evt. hvis det ikke gør noget asp-filerne også....
Avatar billede l_otto Nybegynder
10. marts 2004 - 08:37 #21
hvis det er access så skal du være sikker på at feltet "date" er et dato felt i access.. prøv at åbne database og se under design visning
Avatar billede dr-data Nybegynder
10. marts 2004 - 16:15 #22
l_otto> læg mærke til, at der bliver sorteret efter "id", ikke dato....
Avatar billede willsonn Nybegynder
06. april 2004 - 01:10 #23
Jeg er nødt til at hive pointene tilbage. Mit problem er stadig ikke løst og jeg vil ikke begynde at sende databasefiler m.m.
Men tak til dem, som forsøgte at hjælpe :o)
Avatar billede willsonn Nybegynder
06. maj 2004 - 01:35 #24
mit sidste svar røg med i kloakken under nedbruddet...gider at gentage mig selv. Men ellers tak for hjælpen, det fungede bare ikke
Avatar billede briang3 Nybegynder
18. august 2004 - 14:11 #25
Hej Willsonn
Har ikke behov for point, ved faktisk ikke hvad det bruges til :-), men løste dit problem i går, da jeg selv bruger Dennis' fremragende forum.

Nedenfor er aspkoden for orginal Filen forumthreads.asp

min kode er sat mellem ****************
Så ** skal blot fjernes.
Det kode du viser i først indlæg er vist fra default.asp filen.

Tror man skal kende alle filer og databasen for at kunne hjælpe i sådan et tilfælde, så send et link til hvor du har downloadet dit forum:
http://activedeveloper.dk/download/default.asp?mode=showdownload&id=36



<%
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
*****************************
'Startkode til sortering af indlæg

        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
'Slutkode til sortering af indlæg
*****************************

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

Bedste hilsner
Brian
Avatar billede willsonn Nybegynder
18. august 2004 - 23:36 #26
Har forsøgt mig med at sætte den kode ind som du foreslår, men når jeg så afprøver forummet på siden kommer denne fejlmeddelelse op:

Microsoft VBScript compilation error '800a0409'

Unterminated string constant

/hif-forum/forumthreads.asp, line 20

strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate, Format$([date],'hh:mm') AS FormTime FROM
------------------------------------------------------------------------------------------------------^


Uden at jeg ved det, kunne det tyde på at der er noget galt i den første linje??
Avatar billede willsonn Nybegynder
18. august 2004 - 23:42 #27
koden som den ser ud (efter jeg har foretaget de ændringer du beskrev) ser således ud:

<%
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
%>

Det skulle være præcis som du skrev, men korriger mig hvis jeg har lavet noget forkert... Under alle omstændigheder fungerer det ikke med de ændringer...sorry. Ellers rigtig pænt af dig at forsøge med lidt hjælp så lang tid efter - håber du har flere løsningsforslag :o)
Avatar billede briang3 Nybegynder
19. august 2004 - 00:01 #28
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"     

skal være én linje sådan:

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"
Avatar billede willsonn Nybegynder
19. august 2004 - 11:59 #29
Du havde fandme ret! Det skulle bare være én linje og så virkede det. Helt suverænt, det må jeg nok sige. Et gammelt problem, der har irriteret mig max., men som jeg næsten havde lært at leve med, er løst :o)

Tusind tak for hjælpen, Brian, det var alletiders, at du lige faldt over mit gamle, uløste, selvbesvarede spørgsmål - Se fri debat, hvor din belønning venter. Desuden er der tildelt topkarma til dig!!!
Avatar billede briang3 Nybegynder
19. august 2004 - 12:59 #30
Hej Willsonn
Nu kunne jeg godt bruge en smilie med røde kinder :-), bliver næste projekt til Asp forum.
Bliver nok sidste gang jeg kan hjælpe, da jeg bestemt ikke er en haj til asp, men har ofte selv fået hjælp.
Bedste hilsner
Brian
Avatar billede willsonn Nybegynder
19. august 2004 - 14:13 #31
Fair nok...men du er prof i asp i forhold til mig og har fortjent en stor håndfuld point - ikke mindst for at "rippe op" i et spørgsmål, som forlængst var opgivet at få besvaret/løst.

Smid et svar i denne tråd: http://www.eksperten.dk/spm/530876
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