webForumDet fria alternativet

Problem med paging

7 svar · 586 visningar · startad av whiteness

whitenessMedlem sedan juli 20073 inlägg
#1

Hej!

Jag har en gästbok som jag har fixat paging till enligt en guide jag läste på nätet. Men jag har ett problem.
Pagingen delar inte upp sidorna rätt, det står sida 1 och 2 längst ner på sidan, men alla inlägg är ändå på första sidan.
Någon som vet vad det kan vara för fel?
Tack på förhand!

**Koden för gästboken och pagingen:**<%
If Request.QueryString("get") = "" Then
%><br><%
'DATABASEN TILL GÄSTBOKEN
'--------------------------------------------------------------------------------------------------------
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("db/gb.mdb")&";"

Set sebnet = Server.CreateObject("ADODB.Recordset")
SQL = "Select * FROM gb ORDER BY datum DESC"
sebnet.Open SQL, Connect, 1, 2

Dim sida
sida = Trim(Request.QueryString("sida"))
If sida = "" Then
sida = 1
End If

sebnet.PageSize = 10
sebnet.AbsolutePage = sida
'--------------------------------------------------------------------------------------------------------

Dim rad
rad = 0
rad = rad + 1

%>Här skrivs allting ur databasen ut.<%

If sebnet.BOF Then
%><i>Gästboken är tom!</i><%
else
Do until sebnet.EOF
If sebnet("accepterad") = "nej" Then
%>
<TABLE width="100%" cellspacing="0" cellpadding="5" border="0" ID="Table1"><TR><td width="55%" valign="top"><%=kantfarg%>
<tr>
<td scope="col"></td></tr>
<tr>
<td scope="col"><b>Namn:</b> <%=sebnet("namn")%> <%=sebnet("enamn")%><br>
<b>E-postadress:</b> <%=sebnet("email")%><br>
<b>Sänt:</b> <%=sebnet("datum")%>
<br><br>
<%=sebtext(sebnet("inlagg"))%></td>

</p>
</center></td>
</tr></table>
<table width="100%" ID="Table2"><tr><hr size="1">
<%
else
%>
<TABLE width="500" cellspacing="0" cellpadding="5" border="0" ID="Table3"><TR><td width="55%" valign="top">

<strong>Namn:</strong> <%=sebnet("namn")%> <%=sebnet("enamn")%><br>
<b>E-postadress:</b> 
<%=sebnet("email")%><br>
<b>Sänt:</b> <%=sebnet("datum")%><br><br>
<%=sebtext(sebnet("inlagg"))%></td>

</td><td width="10"></td><td valign="top" width="45%" BGCOLOR="#f4f0e0">
<%
If sebnet("svar") <> "nej" Then
%><%=sebtext(sebnet("svar"))%><%
end if
%>
</td>
</tr></table>
<table width="100%" ID="Table4"><tr><hr size="1"></tr></table>
<%
end if
sebnet.MoveNext
loop
sebnet.Close
Connect.Close
End if
end if

If Request.QueryString("get") = "admin" Then
If Session("admin") = "ok" Then
Response.Redirect("admin.asp")
End if
%>
<br>Admin Login<br>
<br>
<form name="admin" method="post" action="gastbok.asp?get=check" ID="Form1">
<table border="0" cellspacing="0" cellpadding="2" ID="Table5">
<tr>
<td scope="col"><div align="right"><strong>Anvnamn:</strong></div></td>
<td scope="col"><input name="anvnamn" type="text" size="20" ID="Text1">
</td>
</tr>
<tr>
<td><div align="right"><strong>Lösenord:</strong></div></td>
<td><input name="password" type="password" size="20" ID="Password1">
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="loggain" value="Logga in" ID="Submit1"> </td>
</tr>
</table>
</form><br>
<%

If sebnet.PageCount > 1 Then
For i = 1 to sebnet.PageCount
If i = CLng(sida) Then
Response.Write "[" & i & "] "
Else
Response.Write "<a href=""sida.asp?sida=" & i & """>" & i & "</a> "
End If
Next
End If

sebnet.Close : Set sebnet = Nothing
Connect.Close : Set Connect = Nothing

'MEDDELANDE OM UPPGIFTERNA ÄR FEL
If Session("meddelande") <> "" Then
Response.Write Session("meddelande")
Session("meddelande") = ""
End If
end if

'Kollar så anvnamn och lösenord stämmer!
If Request.QueryString("get") = "check" Then
If Request.Form("anvnamn") = admin1 AND Request.Form("password") = admin2 Then
Session("admin") = "ok"
Session.Timeout = 30
Response.Redirect("admin.asp")
else
'Om inte, skicka tillbaks användaren
Session("meddelande") = "Fel användarnamn eller lösenord, försök igen!"
Response.Redirect("index.asp?get=admin")
End if
End if
%>

emissionMedlem sedan dec. 19996 721 inlägg
#2

Använd kod-taggar när du postar kod, tack.

Felet beror på att det inte räcker att kontrollera "Do until sebnet.EOF", du måste även ha en räknare som håller reda på hur många loopvarv du gjort.

intPostCounter=1
Do until sebnet.EOF [b]OR intPostCounter>10[/b]
   'Gör allt annat här
   intPostCounter=intPostCounter+1
Loop
whitenessMedlem sedan juli 20073 inlägg
#3

Får detta felmeddelande efter att jag lagt in det du sa:
Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

/gastbok.asp, line 152

loop
^

devotionMedlem sedan jan. 20013 582 inlägg
#4

Hur ser koden ut nu då? :)

/Henrik

whitenessMedlem sedan juli 20073 inlägg
#5

Nu ser koden ut såhär:

<% If Request.QueryString("get") = "" Then %>

<br>
<%
'DATABASEN TILL GÄSTBOKEN
'--------------------------------------------------------------------------------------------------------
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/gb.mdb")

Set sebnet = Server.CreateObject("ADODB.Recordset")

Addera = "SELECT * From gb ORDER BY datum DESC"

sebnet.Open Addera, Connect, 3, 3
'--------------------------------------------------------------------------------------------------------
%>
<% If sebnet.BOF Then %>
<i>Gästboken är tom!</i>
<% else %>
<% intPostCounter=1
Do until sebnet.EOF AND intPostCounter<=10
'Gör allt annat här
intPostCounter=intPostCounter+1
Loop %>
<% If sebnet("accepterad") = "nej" Then %>
<TABLE width="100%" cellspacing="0" cellpadding="5" border="0"><TR><td width="55%" valign="top"><%=kantfarg%>
<tr>
<td scope="col"></td></tr>
<tr>
<td scope="col"><b>Namn:</b> <%=sebnet("namn")%> <%=sebnet("enamn")%><br>
<b>E-postadress:</b> <%=sebnet("email")%><br>
<b>Sänt:</b> <%=sebnet("datum")%>
<br><br>
<%=sebtext(sebnet("inlagg"))%></td>

</p>
</center></td>
</tr></table>
<table width="100%"><tr><hr size="1">

<% else %>

<TABLE width="500" cellspacing="0" cellpadding="5" border="0"><TR><td width="55%" valign="top">

<strong>Namn:</strong> <%=sebnet("namn")%> <%=sebnet("enamn")%><br>
<b>E-postadress:</b> 
<%=sebnet("email")%><br>
<b>Sänt:</b> <%=sebnet("datum")%><br><br>
<%=sebtext(sebnet("inlagg"))%></td>

</td><td width="10"></td><td valign="top" width="45%" BGCOLOR="#f4f0e0">
<% If sebnet("svar") = "nej" Then %>
<% else %>

<%=sebtext(sebnet("svar"))%>
<% end if %>
</td>
</tr></table>
<table width="100%"><tr><hr size="1"></tr></table>
<% end if %>
<%
sebnet.MoveNext
loop
sebnet.Close
Connect.Close
End if
End if
%>
<%
If Request.QueryString("get") = "admin" Then
If Session("admin") = "ok" Then
Response.Redirect("admin.asp")
else
End if
%>
<br>Admin Login<br>
<br>
<form name="admin" method="post" action="gastbok.asp?get=check">
<table border="0" cellspacing="0" cellpadding="2">
<tr>
<td scope="col"><div align="right"><strong>Anvnamn:</strong></div></td>
<td scope="col"><input name="anvnamn" type="text" size="20">
</td>
</tr>
<tr>
<td><div align="right"><strong>Lösenord:</strong></div></td>
<td><input name="password" type="password" size="20">
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="loggain" value="Logga in"> </td>
</tr>
</table>
</form><br>
<%
'MEDDELANDE OM UPPGIFTERNA ÄR FEL
If Session("meddelande") <> "" Then
Response.Write Session("meddelande")
Session("meddelande") = ""
End If
%>
<% end if %>
<%
'Kollar så anvnamn och lösenord stämmer!
If Request.QueryString("get") = "check" Then
If Request.Form("anvnamn") = admin1 AND Request.Form("password") = admin2 Then
Session("admin") = "ok"
Session.Timeout = 30
Response.Redirect("admin.asp")
else
'Om inte, skicka tillbaks användaren
Session("meddelande") = "Fel användarnamn eller lösenord, försök igen!"
Response.Redirect("index.asp?get=admin")
End if
End if
%>

@ndersMedlem sedan juni 200032 969 inlägg
#6

emission skrev:

Använd kod-taggar när du postar kod, tack.

Om du inte gör det börjar vi grina - och det är inte bra.

I övrigt kan du ju läsa det emission postade - och se om du kan förstå det på ett annat sätt. Två saker: Lägg till det andra villkoret på "Do"-raden, samt se till att räkna inne i loopen. Loopen hade du ju redan - emissions kommentar som börjar med ' borde inte kunna missförstås.

emissionMedlem sedan dec. 19996 721 inlägg
#7

@nders skrev:

I övrigt kan du ju läsa det emission postade

I ärlighetens namn hade jag ju skrivit helt fel. Har redigerat inlägget.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Då är det bara att passa på och läsa en gång till. :)

142 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)