webForumDet fria alternativet

Dela upp Gästbok på flera sidor

ASP

5 svar · 351 visningar · startad av CrYpToNiC

Medlem sedan sep. 200056 inlägg
Frågan#1

Hejsan!

Jag har en gästbok som börjar blir väldigt trög att ladda när man ska läsa den. Borde det inte gå att dela upp den på kanske 20 inlägg per sida?

Gästboken ligger i en MS Access databas och koden för att läsa gästboken ser ut så här:

<html>
<head>
<!--#Include file="adovbs.inc" -->
<title>LANHost: Läs Gästbok</title>
<!--#include file="shell-top.txt" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
dbPath = Server.MapPath("database/gbook.mdb")
dbPass = ""
Connect.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & dbPath & ";uid=;pwd=" & dbPass & ";"
Set RecSet = Server.CreateObject("ADODB.Recordset")

SQL = "Select Count(ID) AS antalPoster From gbook"
Set rs = connect.execute(SQL)%>

            <p><span class="topic">L&auml;s G&auml;stboken</span></p>
            <p> <%=rs("antalPoster")%> st har skrivit i g&auml;stboken.</p>
            <p>
            <table width="100%" border="0" cellspacing="0" cellpadding="2">
              <%visa = "SELECT * FROM gbook ORDER BY id DESC"
RecSet.open visa, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF%> 
              <tr bgcolor="#2C2C2C"> 
                <td><font color="#FFFFFF"><b>Namn:</b></font> <%response.write server.htmlencode(recSet("namn"))%></td>
                <td><font color="#FFFFFF"><b>Tid:</b></font> <%=recSet("tid")%></td>
              </tr>
              <tr bgcolor="#2C2C2C"> 
                <td><font color="#FFFFFF"><b>ICQ#:</b></font> <%response.write server.htmlencode(recSet("icq"))%></td>
                <td><font color="#FFFFFF"><b>IP:</b></font> <%=recSet("ip")%></td>
              </tr>
              <tr> 
                <td colspan="2" bgcolor="#484848" height="16"> 
                  <p><font color="#FFFFFF"><b>Meddelande:</b></font></p>
                    <p>
<%
text = recSet("msg")
Set objRe = New regExp
objRe.IgnoreCase = True
objRe.Global = True

If text <> "" Then 
objRe.Pattern = "<[^>]*>" 
text = objRe.Replace(text," ")
End if

text = replace(text, vbCrLf, "<br>")
response.write text%></p>
                </td>
              </tr>
              <tr>
                <td colspan="2" bgcolor="#484848" height="1"><img src="bilder/pixel.gif" height="1" width="100%"></td>
              </tr>
              <tr> 
                <td colspan="2" bgcolor="#484848" height="32"> 
                  <p>Hemsida: <a href="<%response.write server.htmlencode(recSet("hemsida"))%>" target="_blank"><%response.write server.htmlencode(recSet("hemsida"))%></a><br>
                    Email: <a href="mailto:<%response.write server.htmlencode(recSet("email"))%>"><%response.write server.htmlencode(recSet("email"))%></a></p>
                </td>
              </tr>
              <tr>
                <td height="20">&nbsp;</td>
              </tr>
              <%
RecSet.MoveNext
Loop
RecSet.Close 
Connect.close
%> 
            </table>
            <!--#include file="shell-bottom.txt" -->

Någon som kan modifiera denna kod så den delas upp i flera sidor, alltså 20 inlägg per sida?

------------------
/CrYpToNiC

Medlem sedan juni 2000547 inlägg
#2

Denna fråga har diskuterats åtskilliga gånger här i forumet. Sök på paging eller liknande så hittar du nog vad du söker efter.

------------------
~~~~~~~~~~~~~~~~~~~~
Silvio Fumei
silvio@fumei.net
www.fumei.net
~~~~~~~~~~~~~~~~~~~~

Medlem sedan dec. 2000557 inlägg
#3

Här har du en artikel som går igenom hur du ska gå till väga:
http://cgi.webforum.nu/wf/arkiv/asp_faq.html#paging

------------------
// Palleman
www.wiicom.nu/palle

Medlem sedan sep. 200056 inlägg
#4

Joo, jag har sett detta, men jag fattar inte. Det står ju inte vad raderna gör. Dessutom är den koden till nån sökmotor som delar upp sidor...

Någon som vill förklara lite vad dom olika raderna gör?

------------------
/CrYpToNiC

Medlem sedan aug. 20003 575 inlägg
#5
iSida = Request.Querystring("Sida")
If Not IsNummeric(iSida) Then
iSida = 1
End If

If Not iSida = 1 And Not Rs.Eof Then
Rs.Move((20*iSida-19))
End if

iCount = 0
Do Until Rs.Eof Or iCount >= 20
iCount = iCount +1

'Kod.......
Rs.MoveNext
Loop

If Not Rs.Eof Then
Response.Write "<A href='Fil.asp?Sida" & iSida+1 & '>Nästa sida</A>"

Tror att det skall fungera... kan vara något småfel..

men som sagt det finns i forumet

------------------
"Brott kanske inte lönar sig, men det är kul"

Medlem sedan sep. 200056 inlägg
#6

Det funkar till en viss del, men det går inte att byta sida

------------------
/CrYpToNiC

469 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
326 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
327 ms — ändringar (db)