His Divine ShadowMedlem sedan sep. 20002 748 inlägg
Lyckades med tråd problemet ändå, men nu har jag problem med paging, jag får det inte att funka...
Nån som vet hur man kan koppla en paging kod till detta script?
Det som torde vara det viktiga är väl rsThreads:
Set rsThreads = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '" & ForumID & "' AND status = '1' ORDER BY Date DESC")
Som borde användas för pagingen, men jag vet inte hur jag ska bygga in paging här...
<!-- #INCLUDE FILE="config.inc" -->
<HTML>
<HEAD>
<TITLE>Discussion Forum : by Manas Tungare</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="stylesheet" HREF="forum.css">
</HEAD>
<Message BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<%
Public Sub treeMessage_Build(MessageID, Level)
Dim rsPosts
Set rsPosts = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '"& Request.QueryString("ForumID") &"' ORDER BY Date ASC")
rsPosts.Filter = "MessageID = " & MessageID
%>
<img src="images/threader.jpg" width="<%= Level * 20 %>" height="2"> <font face="arial,tahoma" size="2">
<img src="images/arrows/<%=rsPosts("Status")%>.jpg"> <a href="Message.asp?ID=<%=rsPosts("MessageID")%>" target="Message">
<%=rsPosts("Subject")%>
</a> - <%=rsPosts("Author")%> <font face="arial,tahoma" size="1" color="<% if datediff("h",Date,now()) < 24 then %>Blue<%ELSE%>Red<%END IF%>">(<%=rsPosts("Date")%> )</font>
<br>
<%
rsPosts.Filter = "Parent = " & MessageID
If Not (rsPosts.EOF And rsPosts.BOF) Then
rsPosts.MoveFirst
While Not rsPosts.EOF
treeMessage_Build rsPosts("MessageID"), Level+1
rsPosts.MoveNext
Wend
End If
End Sub
%>
<%
If Request ("ForumID") = "" Then
' We don't have a valid ForumID, so go back to the main page.
response.Redirect("thread.asp?ForumID=1")
End If
Dim ForumID
ForumID = Request("ForumID")
Dim DB, rsForum, rsPosts, rsThreads
Set DB = Connect (ForumMDB)
Set rsForum = DB.Execute ("SELECT * FROM Forums WHERE ForumID = " & ForumID)
Set rsPosts = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '" & ForumID & "' ORDER BY Date ASC")
Set rsThreads = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '" & ForumID & "' AND status = '1' ORDER BY Date DESC")
If rsThreads.BOF And rsThreads.EOF Then
ShowError ("<P ALIGN=""center"">There are no Posts in this forum.<br><A HREF=""post.asp?ForumID="& ForumID &"&Status=1"" target=""Message""><img border=""0"" SRC=""images/newpost.jpg""></A></P>")
%>
<%
Else
rsThreads.MoveFirst
%>
<table width="100%">
<tr>
<td>
<font face="arial,tahoma" size="2"><b>
<%=rsForum("Forum")%>
</b></font>
<br>
<font face="arial,tahoma" size="2">
<%=rsForum("Description")%>
</font>
</td>
<td align="right" width="12%">
<A HREF="post.asp?ForumID=<%=ForumID%>&Status=1" target="Message"><img border="0" SRC="images/newpost.jpg"></A>
</td>
</tr>
</table>
<br>
<%
While Not rsThreads.EOF
treeMessage_Build rsThreads("MessageID"), 0
rsThreads.MoveNext
Wend
%>
<% End If %>
</HTML>
------------------
Sprit löser inga problem. Men det gör inte mjölk heller.
T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup
[Redigerat av His Divine Shadow den 06 feb 2002]
His Divine ShadowMedlem sedan sep. 20002 748 inlägg
Här så är koden som jag tänkte lägga in, men som tyvärr inte funkar.
Tack i förväg om nån vet hur detta ska pusslas ihop, har försökt i flera dagar utan framgång.
<!--#include file="../connect.asp"-->
<%
Dim objConn
Dim strConnString
Dim strSQL
Dim objRS
Dim strName
Dim strComment
Dim dteDate
Dim intPageSize
Dim intPage
Dim intTotalPages
Dim intRecordCount
'## -- connection string, vilken provider och db ska användas --
'## -- hur många inlägg ska visas per sida --
intPageSize = 15
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
%>
<html>
<head>
</head>
<body>
<center>
<font face="Verdana" size="2">Results for: <b>
<%=searchTerm%>
</b></font>
<br>
<%
If intPage = "" Then intPage = 1
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open connection
strSQL = "SELECT * from quotes where "& what &" LIKE '%"& replace(searchTerm,"'","''") &"%' ORDER BY Subcategory ASC"
'## -- skapa ett recordset --
Set objRS = Server.CreateObject("ADODB.Recordset")
'## -- hur många poster ska visas per sida --
objRS.PageSize = intPageSize
'## -- öppna och hämta alla records --
objRS.Open strSQL, objConn, 3, 1
If objRS.EOF Then
Response.Write "<br>No results matched your query.<br><br>"
Else
'## -- vilken sida i recordset uppdelningen ska visas --
objRS.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = objRS.PageCount
'## -- lista alla inlägg som finns i db --
Do Until objRS.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
strName = objRS(1)
strComment = objRS(2)
dteDate = objRS(3)
%>
HÄR BORDE KODEN SOM VISAR SIDAN KOMMA
<%
objRS.MoveNext
Loop
End If
'## -- clean up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
%>
</body>
</html>
<%
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
Dim I
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then %>
<A href="<%=strScriptName%>?page=<%=WichPage - 1%>&forumID=<%=forumID%>">
<font face="Verdana" size="1"><< Previous</A>
<%Else
Response.Write "<font face=""Verdana"" size=""1""><< Previous "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then %>
<A href="<%=strScriptName%>?page=<%=I%>&forumID=<%=forumID%>"><font face="Verdana" size="1">
<%=I%></A>
<%
Else
%>
[ <B>
<%=I%>
</B>]</font>
<%
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then %>
<A href="<%=strScriptName%>?page=<%=WichPage + 1%>&forumID=<%=forumID%>">
<font face="Verdana" size="1">Next >></A>
<%
Else%>
<font face="Verdana" size="1">Next >>
<%End If
End Sub
set objRS= nothing
set objConn = nothing
%>
</font>
[Redigerat av His Divine Shadow den 06 feb 2002]
VideMedlem sedan dec. 19996 094 inlägg
Vad är det som inte fungerar?
------------------
Kunskap är makt, dessvärre är inte makt kunskap
His Divine ShadowMedlem sedan sep. 20002 748 inlägg
Jag önskar jag kunde ge en bättre bild, jag har bara dessa två skilda koder nu, innan hadde jag lyckats få ihop dom så att dom någorlunda funkade, men då tappade jag det.
Det skulle ha varit mycket enklare om jag hadde denna kod kvar, så kanske ni kunnat se var jag gick fel, annars nu, så undrar jag hur jag kombinerar dessa två koder.
PatrikBMedlem sedan mars 20002 713 inlägg
Vad är det som blir fel?
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
His Divine ShadowMedlem sedan sep. 20002 748 inlägg
OK, nu har jag koden kombinerad, men det funkar fortfarande inte.
Ni kan se det här, jag har temporärt läggt upp forumet här: http://www.uniimport.fi/forum/
Här är koden som inte funkar:
<!--#include file="../connect.asp"-->
<%
Response.Buffer = True
Response.Expires = -1000
Const ForumMDB = "/db/forum.mdb"
Public Sub ShowError(Err)
If CStr(Err) <> "" Then
Response.Write "<P CLASS=""Error"">" + CStr(Err) + "</P>"
End If
End Sub
Function Connect (Path2DB)
Dim DB
Set DB = Server.CreateObject("ADODB.Connection")
DB.Mode = adModeReadWrite 'Since we will be adding entries.
DB.Open ("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath(Path2DB))
Set Connect = DB
End Function
' Function Escape() replaces single-quotes with a pair of single-quotes.
' Otherwise we face problems inserting it into SQL statements.
Function Escape(sz)
Escape = Replace(sz, "'", "''")
End Function
' Function ShortData() formats a given Data as a nice-looking
' small string of the format:
' DD MMM, YYYY.
Public Function ShortDate(dtDate)
If Not IsNull (dtDate) Then
ShortDate = Day(dtDate) & " " & Left(MonthName (Month(dtDate)), 3) & ", " & Year(dtDate)
Else
ShortDate = dtDate
End If
End Function
%>
<HTML>
<HEAD>
<TITLE>Discussion Forum : by Manas Tungare</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<LINK REL="stylesheet" HREF="forum.css">
</HEAD>
<Message BGCOLOR="#FFFFFF" LEFTMARGIN="0" TOPMARGIN="0" MARGINWIDTH="0" MARGINHEIGHT="0">
<%
Public Sub treeMessage_Build(MessageID, Level)
Dim rsPosts
Set rsPosts = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '"& Request.QueryString("ForumID") &"' ORDER BY Date ASC")
rsPosts.Filter = "MessageID = " & MessageID
%>
<img src="images/threader.jpg" width="<%= Level * 20 %>" height="2"> <font face="arial,tahoma" size="2">
<img src="images/arrows/<%=rsPosts("Status")%>.jpg"> <a href="Message.asp?ID=<%=rsPosts("MessageID")%>" target="Message">
<%=rsPosts("Subject")%>
</a> - <%=rsPosts("Author")%> <font face="arial,tahoma" size="1" color="<% if datediff("h",Date,now()) < 24 then %>Blue<%ELSE%>Red<%END IF%>">(<%=rsPosts("Date")%> )</font>
<br>
<%
rsPosts.Filter = "Parent = " & MessageID
If Not (rsPosts.EOF And rsPosts.BOF) Then
rsPosts.MoveFirst
While Not rsPosts.EOF
treeMessage_Build rsPosts("MessageID"), Level+1
rsPosts.MoveNext
Wend
End If
End Sub
%>
<%
Dim objConn
Dim strConnString
Dim strSQL
Dim objRS
Dim strName
Dim strComment
Dim dteDate
Dim intPageSize
Dim intPage
Dim intTotalPages
Dim intRecordCount
'## -- connection string, vilken provider och db ska användas --
'## -- hur många inlägg ska visas per sida --
intPageSize = 2
'## -- vilken sida ska visas --
intPage = Request.QueryString("page")
%>
<%
If intPage = "" Then intPage = 1
ForumID = request.QueryString("ForumID")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open forum
strSQL = "SELECT * FROM Posts WHERE ForumID = '" & ForumID & "' AND status = '1' ORDER BY Date DESC"
'## -- skapa ett recordset --
Set objRS = Server.CreateObject("ADODB.Recordset")
'## -- hur många poster ska visas per sida --
objRS.PageSize = intPageSize
'## -- öppna och hämta alla records --
objRS.Open strSQL, objConn, 3, 1
If objRS.EOF Then
Response.Write "<br>No results matched your query.<br><br>"
Else
'## -- vilken sida i recordset uppdelningen ska visas --
objRS.AbsolutePage = intPage
'## -- hur många sidor finns i recordset uppdelningen --
intTotalPages = objRS.PageCount
'## -- lista alla inlägg som finns i db --
Do Until objRS.EOF or intRecordCount >= intPageSize
intRecordCount = intRecordCount + 1
strName = objRS(1)
strComment = objRS(2)
dteDate = objRS(3)
%>
<%
If Request ("ForumID") = "" Then
' We don't have a valid ForumID, so go back to the main page.
response.Redirect("thread.asp?ForumID=1")
End If
Dim ForumID
ForumID = Request("ForumID")
Dim DB, rsForum, rsPosts, rsThreads
Set DB = Connect (ForumMDB)
Set rsForum = DB.Execute ("SELECT * FROM Forums WHERE ForumID = " & ForumID)
Set rsPosts = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '" & ForumID & "' ORDER BY Date ASC")
Set rsThreads = DB.Execute ("SELECT * FROM Posts WHERE ForumID = '" & ForumID & "' AND status = '1' ORDER BY Date DESC")
If rsThreads.BOF And rsThreads.EOF Then
ShowError ("<P ALIGN=""center"">There are no Posts in this forum.<br><A HREF=""post.asp?ForumID="& ForumID &"&Status=1"" target=""Message""><img border=""0"" SRC=""images/newpost.jpg""></A></P>")
%>
<%
Else
rsThreads.MoveFirst
%>
<table width="100%">
<tr>
<td>
<font face="arial,tahoma" size="2"><b>
<%=rsForum("Forum")%>
</b></font>
<br>
<font face="arial,tahoma" size="2">
<%=rsForum("Description")%>
</font>
</td>
<td align="right" width="12%">
<A HREF="post.asp?ForumID=<%=ForumID%>&Status=1" target="Message"><img border="0" SRC="images/newpost.jpg"></A>
</td>
</tr>
</table>
<br>
<%
While Not rsThreads.EOF
treeMessage_Build rsThreads("MessageID"), 0
rsThreads.MoveNext
Wend
%>
<% End If %>
<%
objRS.MoveNext
Loop
End If
'## -- clean up --
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
'## -- visa sidnavigeringen --
'## -- intPage = vilken sida som ska visas --
'## -- intTotalPages = hur många sidor som recordsetet är uppdelat i --
Call PageNavigation(intPage, intTotalPages)
%>
</body>
</HTML>
<%
'## -- skapa sid-navigering --
Sub PageNavigation(ByVal WichPage, ByVal HowManyPages)
Dim strScriptName
Dim I
'## -- vilken sida ska navigeringen länka till --
strScriptName = Request.ServerVariables("SCRIPT_NAME")
'## -- visa föregående, länkat eller olänkat beroende på vilken sida som visas --
If CInt(WichPage) > 1 Then %>
<A href="<%=strScriptName%>?page=<%=WichPage - 1%>&forumID=<%=forumID%>"><font face="Verdana" size="1">
<< Previous</A>
<%Else
Response.Write "<font face=""Verdana"" size=""1""><< Previous "
End If
'## -- lista ut alla sidnummer --
For I = 1 To HowManyPages
If CInt(WichPage) <> I Then %>
<A href="<%=strScriptName%>?page=<%=I%>&forumID=<%=forumID%>"><font face="Verdana" size="1">
<%=I%></A>
<%
Else
%>
[ <B>
<%=I%>
</B>]</font>
<%
End If
Next
'## -- visa Nästa, länkad eller olänkad beroende på vilken sida som visas --
If CInt(WichPage) < CInt(HowManyPages) Then %>
<A href="<%=strScriptName%>?page=<%=WichPage + 1%>&forumID=<%=forumID%>"><font face="Verdana" size="1">
Next >></A>
<%
Else%>
<font face="Verdana" size="1">Next >>
<%End If
End Sub
set objRS= nothing
set objConn = nothing
%></HTML>
------------------
Sprit löser inga problem. Men det gör inte mjölk heller.
T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup
PatrikBMedlem sedan mars 20002 713 inlägg
eh, va lite mycket att gå igenom ... du skulle inte kunna "fimpa" allt irrelevant HTML-kod som bara stökar till det.
En annan sak. Hur såg din grundkod ut innan du försökte att göra en paging?
Det ser ut som du har lagt till ett recordset för att sköta pagingen vilket blir lite knas. Det du skall göra är att modifiera rsThreads recordsetet till paging.
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
[Redigerat av PatrikB den 07 feb 2002]
His Divine ShadowMedlem sedan sep. 20002 748 inlägg
Kan ju Pröva, problemet är ju att jag inte fattar ditt som datt gällandes detta, det torde ju bli enklare om man kopierade in koden i det program man använder.
------------------
Sprit löser inga problem. Men det gör inte mjölk heller.
T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup
His Divine ShadowMedlem sedan sep. 20002 748 inlägg
Hmm, prövade göra som du förslog och voilá det funkar, thx very much.
Om nån är intresserad får ni nog använda denna kod om ni vill ha en såndär "rekursiv tråd kod" ;)
Den funkar fin-fint.
------------------
Sprit löser inga problem. Men det gör inte mjölk heller.
T-bird 1200; GeForce 256 32MB; WinNT4/XP; 512MB RAM; Dialup
PatrikBMedlem sedan mars 20002 713 inlägg
... och lite kod skulle vi nog vilja se ... eller andra som har haft/har problem med liknande
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-