webForumDet fria alternativet

Problem med paging

ASPur ASP

7 svar · 586 visningar · startad av whiteness

Medlem sedan juli 20073 inlägg
Frågan#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
%>

Medlem 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
Medlem 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
^

Medlem sedan jan. 20013 582 inlägg
#4

Hur ser koden ut nu då? :)

/Henrik

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

Medlem 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.

Medlem 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.

Medlem sedan juni 200032 969 inlägg
#8

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

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