חלוקה לעמודים - המשך
טוב, ההודעה הקודמת כבר לא קופצת אז אני אמשיך פה. אני משער שלא ענו לי בהודעה הקודמת כי לא נתתי מספיק פרטים.. אז ככה: בניתי פורום מאוד פשוט בעזרת השיטה getRows, והצגת ההודעות והקינון שלהם נעשים בעזרת רקורסיה. שאלתי שאלה איך אפשר לעשות חלוקה לעמודים ב getRows וענו לי שאפשר פשוט רגיל - ב ADO. אז ניסיתי להוסיף את החלוקה בעצמי - אבל זה עשה בעיות משום מה.. הקוד הרלוונתי:
טוב, ההודעה הקודמת כבר לא קופצת אז אני אמשיך פה. אני משער שלא ענו לי בהודעה הקודמת כי לא נתתי מספיק פרטים.. אז ככה: בניתי פורום מאוד פשוט בעזרת השיטה getRows, והצגת ההודעות והקינון שלהם נעשים בעזרת רקורסיה. שאלתי שאלה איך אפשר לעשות חלוקה לעמודים ב getRows וענו לי שאפשר פשוט רגיל - ב ADO. אז ניסיתי להוסיף את החלוקה בעצמי - אבל זה עשה בעיות משום מה.. הקוד הרלוונתי:
Dim Conn, MainRs, MainSQL, fid, arr fid = Request.Querystring("forumID") If isEmpty(fid) or isNumeric(fid) = False Then fid = 0 Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("DBpath.mdb") Set MainRs = Server.CreateObject("ADODB.RecordSet") MainSQL = "SELECT * FROM Messages WHERE ForumID=" & fid & " ORDER BY mTime DESC" MainRs.Open MainSQL, Conn, 3, 1 Const MessagesNum = 10 Dim Page, PagesCount Page = Request.Querystring("Page") If isEmpty(Page) or isNumeric(Page) = False Then Page = 1 MainRs.PageSize = MessagesNum MainRs.CacheSize = MessagesNum If Not MainRs.EOF Then PagesCount = MainRs.PageCount MainRs.AbsolutePage = Page arr = MainRs.getRows End If MainRs.Close Set MainRs = Nothing Conn.Close Set Conn = Nothing If isArray(arr) Then Const iID = 0 Const iForumID = 1 Const iSubject = 2 Const iAuthor = 3 Const iBody = 4 Const iTime = 5 Const iParentID = 6 Const iRootID = 7 Function ShowMessages(index,level) Dim s, i %> <!-- ****** The HTML code that prints the message. ****** --> <% i = UBound(arr,2) Do While i>=0 If arr(iParentID,i) = arr(iID,index) Then Call ShowMessages(i,level + 1) End If i = i - 1 Loop End Function Dim i, j, Count Count = 0 j = 0 i = 0 Do While Not i = UBound(arr,2) AND Not j = MessagesNum If arr(iParentID,i) = 0 Then Call ShowMessages(i,0) Response.Write "<br>" j = j + 1 End If i = i + 1 Loop End If
אני יודע שהקוד אולי קצת ארוך ומתיש, אבל בבקשה - תנסו למצוא את הבעיה, אני ממש תקוע על העניין הזה כבר כמה ימים.. תודה רבה מראש.