Avatar billede ban_me Nybegynder
22. maj 2005 - 16:39 Der er 35 kommentarer og
1 løsning

Lidt problemer med Paging

Hej eksperter,

Hvorfor får jeg følgende fejl i min kode:
Linje 49 er rs.AbsolutePage = intPage
-----------
ADODB.Recordset error '800a0cb3'

Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

/walid/pages/tagwall.asp, line 49


Sourcecode:
--------------
    intPage = Request("pagenumber")
    If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
    End If
    If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 3
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Do While Not rs.EOF And intRecCount > 0
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
    End If
    rs.Close
    Set rs = Nothing
   
    Response.Write "Side: "
    For intNum = 1 To intPageCount
    If intPage = intNum Then
    Response.Write " [" & "<b>" & intNum &"</b>" & "] "
    Else
    Response.Write "<a href=?page=6&pagenumber=" & intNum & ">" & intNum & "</a> "
    End If
    Next
Avatar billede busschou Praktikant
22. maj 2005 - 16:42 #1
Der står jo at det kunne skyldes dit valg af cursor type
Hvor åbner du rs ?
hvordan ser det ud ?
Avatar billede busschou Praktikant
22. maj 2005 - 16:44 #2
Avatar billede ban_me Nybegynder
22. maj 2005 - 18:07 #3
'Paging samt mulighed for at tilføje en besked
  response.write("<table width='630' align='center' cellpadding='3' cellspacing='0'>")
  response.write("<tr>")
  response.write("<td height='23' align='center' valign='top' class='textheader'><a href='?page=1&mode=addmessage'>Tilf&oslash;j besked</a></td>")
  response.write("</tr>")
  response.write("<tr>")
  response.write("<td>")
  response.write("</td>")
  response.write("</tr>")
  response.write("<tr>")
  response.write("<td align='center' valign='top' class='textnormal'>")
   
    SQL = "SELECT COUNT(*) as count FROM tagwall"
    set RS = conn.execute(SQL)
 
    response.write("Beskeder: " &"<b>"& RS("count") &" <br></b>")
   
    SQL = "SELECT id, author, body, addeddate, ip, website, email, topic FROM tagwall"
    set RS = conn.execute(SQL)
   
    intPage = Request("pagenumber")
    If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
    End If
    If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 3
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Do While Not rs.EOF And intRecCount > 0
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
    End If
    rs.Close
    Set rs = Nothing
   
    Response.Write "Side: "
    For intNum = 1 To intPageCount
    If intPage = intNum Then
    Response.Write " [" & "<b>" & intNum &"</b>" & "] "
    Else
    Response.Write "<a href=?page=6&pagenumber=" & intNum & ">" & intNum & "</a> "
    End If
    Next
   
    response.write("<br>")
    response.write("<br>")
    response.write("<tr>")
    response.write("<td colspan='4' height='1' background='gfx/dot_horizontal.gif'></td>")
    response.write("</tr>")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("<br>")
   




Sådan ser min kode ud.
Kan du se hvad de skyldes?
Avatar billede busschou Praktikant
22. maj 2005 - 18:13 #4
Der er da noget helt galt
Du sætter rs til at være resultatet fra din sql...altså får du dine rækker ud
Derefter behandler du rs på en helt anden måde...som jeg ikke kan se nogen sammenhæng i
Avatar billede busschou Praktikant
22. maj 2005 - 18:28 #5
Hvad er det du ønsker?
Du har en masse jeg intet forstår af
denne her
---
Do While Not rs.EOF And intRecCount > 0
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
---
den laver intet andet end tælle intRecCount ned
Men intRecCount = rs.PageSize
og rs.PageSize = 3
Men der findes ingen rs.PageSize
Jeg kan skutte lure det du har prøvet lave?
Ønsker du blot ganske normal paging?
Så kan du jo bare lave din sql og så køre en løkke som tæller til din pagenumber
Har du tre på hver side så benyt modolus 3
Jeg kan slet ikke se hvor alt det rs.pagesize , rs.absolutepage mm kommer ind henne?
Avatar billede ban_me Nybegynder
22. maj 2005 - 18:43 #6
Jeg vil gerne have en paging ligesom denne her:
http://www.teammatrix.dk/?page=6

Kan du fortælle mig hvordan jeg får sådan en ?
Avatar billede busschou Praktikant
22. maj 2005 - 18:53 #7
pagingen bliver noget ala:
-----
pagenumber = request.querystring("pagenumber")

SQL = "SELECT COUNT(*) as count FROM tagwall"
set RS = conn.execute(SQL)
antal_beskeder = RS("count")
response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")

antal_beskeder_pr_side = 20
antal_sider = antal_beskeder/antal_beskeder_pr_side
Response.Write "Side: "
For i = 1 To antal_sider
  If i = pagenumber Then
    Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
    Response.Write "<a href=?page=6&pagenumber=" & i & ">" & i & "</a> "
  end If
Next
----
Desuden skal du jo så kunne udskrive det aktuelle på den aktuelle side ala
----
SQL = "SELECT id, author, body, addeddate, ip, website, email, topic FROM tagwall"
set RS = conn.execute(SQL)
start = antal_beskeder_pr_side * (pagenumber - 1)
count = 0
Do while not rs.eof and count < antal_beskeder_pr_side
  response.write rs("id") //osv osv alle udskrifterne her
  count = count + 1
rs.movenext
loop
Avatar billede busschou Praktikant
22. maj 2005 - 18:55 #8
hov glemte at tælle op til start parametren i den sidste...sådan her
---
SQL = "SELECT id, author, body, addeddate, ip, website, email, topic FROM tagwall"
set RS = conn.execute(SQL)
start = antal_beskeder_pr_side * (pagenumber - 1)
count = 0
Do while not rs.eof and count < antal_beskeder_pr_side
  if start > 0 then
    start = start - 1
  else
    response.write rs("id") //osv osv alle udskrifterne her
    count = count + 1
  end if
rs.movenext
loop
Avatar billede ban_me Nybegynder
22. maj 2005 - 19:07 #9
Kan ikke få det til at virke. Prøv du at gøre som du tror det skal se ud:


'Paging samt mulighed for at tilføje en besked
  response.write("<table width='630' align='center' cellpadding='3' cellspacing='0'>")
  response.write("<tr>")
  response.write("<td height='23' align='center' valign='top' class='textheader'><a href='?page=1&mode=addmessage'>Tilf&oslash;j besked</a></td>")
  response.write("</tr>")
  response.write("<tr>")
  response.write("<td>")
  response.write("</td>")
  response.write("</tr>")
  response.write("<tr>")
  response.write("<td align='center' valign='top' class='textnormal'>")
   
    SQL = "SELECT COUNT(*) as count FROM tagwall"
    set RS = conn.execute(SQL)
 
    response.write("Beskeder: " &"<b>"& RS("count") &" <br></b>")
   
    SQL = "SELECT id, author, body, addeddate, ip, website, email, topic FROM tagwall"
    set RS = conn.execute(SQL)
   
    intPage = Request("pagenumber")
    If isNumeric(intPage) = False Or intPage < 1 Then
    intPage = 1
    End If
    If Not (rs.BOF Or rs.EOF) Then
    rs.PageSize = 3
    rs.AbsolutePage = intPage
    intRecCount = rs.PageSize
    intPageCount = rs.PageCount
    Do While Not rs.EOF And intRecCount > 0
    intRecCount = intRecCount - 1
    rs.MoveNext
    Loop
    End If
    rs.Close
    Set rs = Nothing
   
    Response.Write "Side: "
    For intNum = 1 To intPageCount
    If intPage = intNum Then
    Response.Write " [" & "<b>" & intNum &"</b>" & "] "
    Else
    Response.Write "<a href=?page=6&pagenumber=" & intNum & ">" & intNum & "</a> "
    End If
    Next
   
    response.write("<br>")
    response.write("<br>")
    response.write("<tr>")
    response.write("<td colspan='4' height='1' background='gfx/dot_horizontal.gif'></td>")
    response.write("</tr>")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("<br>")
   
    SQL = "SELECT id, author, body, addeddate, ip, website, email, topic FROM tagwall ORDER BY addeddate DESC; "
    set RS = conn.execute(SQL)

    'Starter selve tabellen hvori beskeden ligger!
   
    If RS.EOF then
   
    response.write("Ingen beskeder fundet i databasen")
   
    else
   
    do while not RS.EOF
   
    response.write("<table width='630' align='center' cellpadding='0' cellspacing='10' class='table_bluelight'>")
    response.write("<tr>")
    response.write("<td><table width='100%' border='0' cellpadding='0' cellspacing='0'>")
    response.write("<tr>")
    response.write("<td class='textheader' width='63%' height='18'>")
       

       
    response.write(""  & RS("topic") & "")
    response.write("</td>")
    response.write("<td width='37%' align='right' valign='top'>")
    response.write(" <font color='#999999' class='textfade'>" & formatdatetime(RS("addeddate"),1) & "  kl. " & formatdatetime(RS("addeddate"),4) & "</a></font>  ")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("</td>")
    response.write("</tr>")
    response.write("<tr>")
    response.write("<td><table width='100%' border='0' cellpadding='0' cellspacing='5' class='textnormal'>")
    response.write("<tr>")
    response.write("<td>")
    response.write(""  & RS("body") & "")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("</td>")
    response.write("</tr>")
    response.write("<tr>")
    response.write("<td height='18'><table width='100%' border='0' cellpadding='0' cellspacing='0' class='textfade'>")
    response.write("<tr>")
    response.write("<td valign='top'>")
    response.write("// " & RS("author") & "")
    response.write("</td>")
    response.write("<td align='right' valign='bottom'>")
       
    'Beskedsystemets administrations modul. Vises kun hvis man er logget ind!
    if session("login") = "true" then
 
    response.write("<font color='CCCCCC'>IP-adresse: "& RS("ip") &"</font>")
    response.write("&nbsp;")
    response.write("&nbsp;")
   
    response.write("<a href='?page=6&mode=delete&id=" & RS("id") & "'>Slet besked</a>")
    response.write("&nbsp;")
    response.write("<font color='#111111'>|<fon/t>")
    response.write("&nbsp;")
    response.write("<a href='?page=6&mode=ban&ip=" & RS("ip") & "'>Ban</a>")
    response.write("&nbsp;")
    response.write("&nbsp;")

    end if
       
    if not RS("website") = "" then
   
    response.write("")
    response.write("<a href=' " & RS("website") & " '  >")
    response.write("<img src='gfx/icons/website.gif' alt='Besøg "& RS("author") & "s website'""  width='16' height='16' border='0'></a>")
    response.write("&nbsp;")
    response.write("&nbsp;")
   
    end if
   
    if not RS("email") = "" then
   
    response.write("")
    response.write("<a href='mailto:"  & RS("email") & " '  >")
    response.write("<img src='gfx/icons/mail.gif' alt='Skriv en e-mail til "& RS("author") &"'"" width='16' height='16' border='0'></a>")

    end if
                           
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")

    rs.movenext
    loop
    end if
Avatar billede busschou Praktikant
22. maj 2005 - 19:15 #10
Der er jo meget ;o)
Men sådan her vil jeg tro
----
response.write("<table width='630' align='center' cellpadding='3' cellspacing='0'>")
response.write("<tr>")
response.write("<td height='23' align='center' valign='top' class='textheader'><a href='?page=1&mode=addmessage'>Tilf&oslash;j besked</a></td>")
response.write("</tr>")
response.write("<tr>")
response.write("<td>")
response.write("</td>")
response.write("</tr>")
response.write("<tr>")
response.write("<td align='center' valign='top' class='textnormal'>")

pagenumber = request.querystring("pagenumber")
if pagenumber = "" then
  pagenumber = 1
end if
SQL = "SELECT COUNT(*) as count FROM tagwall"
set RS = conn.execute(SQL)
antal_beskeder = RS("count")
response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")
antal_beskeder_pr_side = 20
antal_sider = antal_beskeder/antal_beskeder_pr_side
Response.Write "Side: "
For i = 1 To antal_sider
  If i&"" = pagenumber Then
    Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
    Response.Write "<a href=?page=6&pagenumber=" & i & ">" & i & "</a> "
  end If
Next

response.write("<br>")
response.write("<br>")
response.write("<tr>")
response.write("<td colspan='4' height='1' background='gfx/dot_horizontal.gif'></td>")
response.write("</tr>")
response.write("</td>")
response.write("</tr>")
response.write("</table>")
response.write("<br>")
 
SQL = "SELECT id, author, body, addeddate, ip, website, email, topic FROM tagwall ORDER BY addeddate DESC; "
set RS = conn.execute(SQL)
start = antal_beskeder_pr_side * (pagenumber - 1)
count = 0

'Starter selve tabellen hvori beskeden ligger!
If RS.EOF then
  response.write("Ingen beskeder fundet i databasen")
else
  do while not RS.EOF and count < antal_beskeder_pr_side
  if start > 0 then
    start = start - 1
  else
    response.write("<table width='630' align='center' cellpadding='0' cellspacing='10' class='table_bluelight'>")
    response.write("<tr>")
    response.write("<td><table width='100%' border='0' cellpadding='0' cellspacing='0'>")
    response.write("<tr>")
    response.write("<td class='textheader' width='63%' height='18'>")
    response.write(""  & RS("topic") & "")
    response.write("</td>")
    response.write("<td width='37%' align='right' valign='top'>")
    response.write(" <font color='#999999' class='textfade'>" & formatdatetime(RS("addeddate"),1) & "  kl. " & formatdatetime(RS("addeddate"),4) & "</a></font>  ")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("</td>")
    response.write("</tr>")
    response.write("<tr>")
    response.write("<td><table width='100%' border='0' cellpadding='0' cellspacing='5' class='textnormal'>")
    response.write("<tr>")
    response.write("<td>")
    response.write(""  & RS("body") & "")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("</td>")
    response.write("</tr>")
    response.write("<tr>")
    response.write("<td height='18'><table width='100%' border='0' cellpadding='0' cellspacing='0' class='textfade'>")
    response.write("<tr>")
    response.write("<td valign='top'>")
    response.write("// " & RS("author") & "")
    response.write("</td>")
    response.write("<td align='right' valign='bottom'>")
     
    'Beskedsystemets administrations modul. Vises kun hvis man er logget ind!
    if session("login") = "true" then
      response.write("<font color='CCCCCC'>IP-adresse: "& RS("ip") &"</font>")
      response.write("&nbsp;")
      response.write("&nbsp;")
      response.write("<a href='?page=6&mode=delete&id=" & RS("id") & "'>Slet besked</a>")
      response.write("&nbsp;")
      response.write("<font color='#111111'>|<fon/t>")
      response.write("&nbsp;")
      response.write("<a href='?page=6&mode=ban&ip=" & RS("ip") & "'>Ban</a>")
      response.write("&nbsp;")
      response.write("&nbsp;")
    end if
     
    if not RS("website") = "" then
      response.write("")
      response.write("<a href=' " & RS("website") & " '  >")
      response.write("<img src='gfx/icons/website.gif' alt='Besøg "& RS("author") & "s website'""  width='16' height='16' border='0'></a>")
      response.write("&nbsp;")
      response.write("&nbsp;")
    end if
 
    if not RS("email") = "" then
      response.write("")
      response.write("<a href='mailto:"  & RS("email") & " '  >")
      response.write("<img src='gfx/icons/mail.gif' alt='Skriv en e-mail til "& RS("author") &"'"" width='16' height='16' border='0'></a>")
    end if
                         
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
    response.write("</td>")
    response.write("</tr>")
    response.write("</table>")
  count = count + 1
  end if
  rs.movenext
  loop
end if
---
Avatar billede busschou Praktikant
22. maj 2005 - 19:19 #11
Jeg vil generelt foreslå dig ikke lave så meget response.write men i stedet afslutte din asp kode..
eksempel i stedet for:
-----
if not RS("email") = "" then
      response.write("")
      response.write("<a href='mailto:"  & RS("email") & " '  >")
      response.write("<img src='gfx/icons/mail.gif' alt='Skriv en e-mail til "& RS("author") &"'"" width='16' height='16' border='0'></a>")
    end if
-----
så sådan her
-----
if not RS("email") = "" then %>
  <a href="mailto:<%=RS("email")%>"><img src="gfx/icons/mail.gif" alt="Skriv en e-mail til <%=RS("author")%>" width="16" height="16" border="0"></a>
<%
end if
-----
Det er selvfølgelig en smags sag men det gør at man slipper for at escape gåseøjne mm
Avatar billede ban_me Nybegynder
22. maj 2005 - 19:21 #12
Men det gør loading tiden hurtigere :)
Og så er der mere overskud over koden.
Avatar billede busschou Praktikant
22. maj 2005 - 19:24 #13
gør det loading tiden hurtigere?
Det giver mig nu ingen mening
For alt som står imellem <% og %> det skal tolkes på asp serveren, og alt som ikke står imellem. Ja det spytter den blot videre - det er serveren helt ligeglad med
Så det burde logisk set være hurtigere på den anden måde
Men anyway...smagssag

Håber det andet virker rimeligt...vil jeg umiddelbart tro det gør...men altid svært når man ikke kan teste det med det samme ;o)
Avatar billede ban_me Nybegynder
22. maj 2005 - 20:04 #14
Nu virker det fint. Mange tak. Men jeg har stadig 2 ønsker mere.

Hvis der kune ligger 1 besked i databasen og visninger er sat til 20. Så skal der stadig stå [1] istedet for ingen ting.

Når man går ind på min side står der bare 1 2 3 4 5 osv.
Det skal være sådan at når man går ind på siden, så skal 1 starte med at se aktiv ud. Altså [1] istedet for 1
Avatar billede busschou Praktikant
22. maj 2005 - 20:11 #15
Det første burde denne her allerede tage højde for:
---
if pagenumber = "" then
  pagenumber = 1
end if
---
For hvis du går direkte ind på siden.asp uden den er siden.asp?pagenumber=1
Så vil pagenumber = "" og derfor blive sat til 1...
hmm så det burde altså virke
Avatar billede ban_me Nybegynder
22. maj 2005 - 20:13 #16
Det gør den desværre ikke.
http://www.helsingorminiz.dk/walid/?page=1
Avatar billede busschou Praktikant
22. maj 2005 - 20:14 #17
dvs det var det andet ;o)
Det med hvis der er færre beskeder i databasen end det antal der er sat bør kunne løses ved at udskifte følgende:
----
antal_beskeder_pr_side = 20
antal_sider = antal_beskeder/antal_beskeder_pr_side
Response.Write "Side: "
For i = 1 To antal_sider
  If i&"" = pagenumber Then
    Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
    Response.Write "<a href=?page=6&pagenumber=" & i & ">" & i & "</a> "
  end If
Next
----
til følgende
----
antal_beskeder_pr_side = 20
antal_sider = antal_beskeder/antal_beskeder_pr_side
Response.Write "Side: "
if antal_sider = 0 then
Response.Write " [" & "<b>" & 1 &"</b>" & "] "
end if
For i = 1 To antal_sider
  If i&"" = pagenumber Then
    Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
    Response.Write "<a href=?page=6&pagenumber=" & i & ">" & i & "</a> "
  end If
Next
Avatar billede busschou Praktikant
22. maj 2005 - 20:17 #18
underligt
prøv lave sådan et lille kringlet fiks her så
ret
---
pagenumber = request.querystring("pagenumber")
if pagenumber = "" then
  pagenumber = 1
end if
---
til
---
pagenumber = ""
pagenumber = pagenumber & request.querystring("pagenumber")
if pagenumber = "" then
  pagenumber = 1
end if
Avatar billede busschou Praktikant
22. maj 2005 - 20:18 #19
En anden ting er jo så at der ikke bliver testet mere for om pagenumber er et tal...så hvis man skriver
http://www.helsingorminiz.dk/walid/?page=1&pagenumber=hej
Så får man fejl...
Men altså, det er jo ikke mere alvorligt end folk må tænke sig om vil jeg mene :o)
Avatar billede ban_me Nybegynder
22. maj 2005 - 20:38 #20
HVis jeg angiver følgende:
antal_beskeder_pr_side = 20

Så udskriver den stadig kun 1 post per side.
Avatar billede busschou Praktikant
22. maj 2005 - 20:44 #21
Besynderligt
Prøv udskrive nogle af variablene så vi kan se hvad de er, altå
---
pagenumber = request.querystring("pagenumber")
if pagenumber = "" then
  pagenumber = 1
end if
response.write "pagenumber er "&pagenumber
SQL = "SELECT COUNT(*) as count FROM tagwall"
set RS = conn.execute(SQL)
antal_beskeder = RS("count")
response.write "antal_beskeder er "&antal_beskeder
response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")
antal_beskeder_pr_side = 20
antal_sider = antal_beskeder/antal_beskeder_pr_side
response.write "antal_sider er "&antal_sider"
Response.Write "Side: "
For i = 1 To antal_sider
  If i&"" = pagenumber Then
    Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
    Response.Write "<a href=?page=6&pagenumber=" & i & ">" & i & "</a> "
  end If
Next
Avatar billede busschou Praktikant
22. maj 2005 - 20:46 #22
for jeg mener hvis
antal_beskeder er 2
antal_beskeder_pr_side er 20
så må antal_sider jo være 2/20 = 0
---
der manglede i øvrigt mit fix...en copy paste fejl sorry
---
pagenumber = request.querystring("pagenumber")
if pagenumber = "" then
  pagenumber = 1
end if
response.write "pagenumber er "&pagenumber
SQL = "SELECT COUNT(*) as count FROM tagwall"
set RS = conn.execute(SQL)
antal_beskeder = RS("count")
response.write "antal_beskeder er "&antal_beskeder
response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")
antal_beskeder_pr_side = 20
antal_sider = antal_beskeder/antal_beskeder_pr_side
response.write "antal_sider er "&antal_sider"
Response.Write "Side: "
if antal_sider = 0 then
Response.Write " [" & "<b>" & 1 &"</b>" & "] "
end if
For i = 1 To antal_sider
  If i&"" = pagenumber Then
    Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
    Response.Write "<a href=?page=6&pagenumber=" & i & ">" & i & "</a> "
  end If
Next
Avatar billede busschou Praktikant
22. maj 2005 - 20:54 #23
jeg bliver desværre til at smutte om lidt...jeg håber du kan lure det ved at lave nogle test udskrifter
Ellers kigger jeg forbi senere :o)
Avatar billede ban_me Nybegynder
23. maj 2005 - 16:06 #24
http://www.helsingorminiz.dk/walid/?page=1
Mangler stadig lige noget hjælp. Hvis antal_beskeder_pr_side er sat til = 15, så vil jeg gerne have et der stadig står Side: [1] istedet for bare Side:

Og så vil jeg gerne have at værdien i pangenumber bliver sat til 1, når jeg åbner min ?page=1 så den altid kommer til at se sådan her ud når jeg starter den:

[1] 2 3 4 5 6...

----
Sorucecode
----
pagenumber = request.querystring("pagenumber")
if pagenumber = "" then
pagenumber = 1
end if
SQL = "SELECT COUNT(*) as count FROM tagwall"
set RS = conn.execute(SQL)
antal_beskeder = RS("count")
response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")
antal_beskeder_pr_side = 15
antal_sider = antal_beskeder/antal_beskeder_pr_side
Response.Write "Side: "
if antal_sider = 0 then
Response.Write " [" & "<b>" & 1 &"</b>" & "] "
end if
For i = 1 To antal_sider
If i&"" = pagenumber Then
Response.Write " [" & "<b>" & i &"</b>" & "] "
Else
Response.Write "<a href=?page=1&pagenumber=" & i & ">" & i & "</a> "
end If
Next

response.write("<br>")
response.write("<br>")
response.write("<tr>")
response.write("<td colspan='4' height='1' background='gfx/dot_horizontal.gif'></td>")
response.write("</tr>")
response.write("</td>")
response.write("</tr>")
response.write("</table>")
response.write("<br>")

SQL = "SELECT id, author, body, addeddate, addedtime, ip, website, email, topic FROM tagwall ORDER BY addeddate DESC; "
set RS = conn.execute(SQL)
start = antal_beskeder_pr_side * (pagenumber - 1)
count = 0

'Starter selve tabellen hvori beskeden ligger!

If RS.EOF then
  response.write("Ingen beskeder fundet i databasen")
else
  do while not RS.EOF and count < antal_beskeder_pr_side
  if start > 0 then
    start = start - 1
  else
 
  If blnBGColor = True Then
  strBGColor = "#EFF7FF"
  blnBGColor = False
Else
  strBGColor = "#F8F8F8"
  blnBGColor = True
End If

.....efterfulgt af alt mit udskrivning fra databasen
Avatar billede busschou Praktikant
23. maj 2005 - 19:38 #25
ok jeg skal lige være med..troede din querystring hed "pagenumber" og ikke "page"
så skal du rette følgende linje
--
pagenumber = request.querystring("pagenumber")
--
til
--
pagenumber = request.querystring("page")
Avatar billede busschou Praktikant
23. maj 2005 - 19:40 #26
Jeg er stadig ikke helt med
denne her indikerer jo at du både vil bruge "page" og "pagenumber"
-
Response.Write "<a href=?page=1&pagenumber=" & i & ">" & i & "</a> "
-
så du kan få et link som hedder fx
http://www.helsingorminiz.dk/walid/?page=1&pagenumber=3
Avatar billede busschou Praktikant
23. maj 2005 - 19:41 #27
så jeg tror ikke du skal rette det som i min kommentar 19:38:46
Hvis du altid vil starte med [1] hvis ?page=1 ... så skifter den jo ikke side når pagenumber=2 ...kan du følge mig?
Der skal vel kun være een variabel som fortæller hvilken side man er på
Ellers har jeg misforstået noget
Avatar billede ban_me Nybegynder
24. maj 2005 - 09:55 #28
Ja du har misforstået noget ;)

?page= angiver hvilken side på mit site jeg er på. F.eks. Forsiden, informationen, medlemmer osv..

pagenumber er bare den querystring der angiver hvilken side jeg er på min tagwall. Altså f.eks.

?page=1&pagenumber=350
Avatar billede busschou Praktikant
24. maj 2005 - 10:03 #29
prøv rette denne
antal_sider = antal_beskeder/antal_beskeder_pr_side
til
antal_sider = round(antal_beskeder/antal_beskeder_pr_side)
Jeg ville tro divisionen burde give et heltal...men siden den ikke skriver noget så må den jo give en brøk eller andet
Avatar billede busschou Praktikant
24. maj 2005 - 10:03 #30
eller evt
antal_sider = round(cint(antal_beskeder)/cint(antal_beskeder_pr_side))
Avatar billede busschou Praktikant
24. maj 2005 - 10:11 #31
du kan også rette denne her
---
if pagenumber = "" then
pagenumber = 1
end if
--
til
--
if pagenumber = "" then
pagenumber = "1"
end if
--
For så burde den fanges i loopet
Avatar billede ban_me Nybegynder
24. maj 2005 - 10:14 #32
Det virker perfekt :D

Endnu engang super hjælp fra dig ;)

Du modtager point
Avatar billede busschou Praktikant
24. maj 2005 - 10:16 #33
det var så lidt :o).. var jo lidt længe undervejs denne gang.. men godt det endelig virker :o)
Avatar billede ban_me Nybegynder
29. maj 2005 - 09:46 #34
Må lige have fat i dig igen, selvom spm. er lukket!

Det funker ikke helt alligevel. Hvis der er 23 beskeder i gæstebogen, så viser den kun 20, indtil, den er kommet op på 30 beskeder.

Altså den mangler at vise den sidste side, med de resterende beskeder!


-----
  pagenumber = request.querystring("pagenumber")
  if pagenumber = "" then
  pagenumber = "1"
  end if
  SQL = "SELECT COUNT(*) as count FROM messageboard"
  set RS = conn.execute(SQL)
  antal_beskeder = RS("count")
  response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")
  antal_beskeder_pr_side = 10
  antal_sider = round(cint(antal_beskeder)/cint(antal_beskeder_pr_side))
  Response.Write "Side: "
  if antal_sider = 0 then
  Response.Write " [" & "<b>" & 1 &"</b>" & "] "
  end if
  For i = 1 To antal_sider
  If i&"" = pagenumber Then
  Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
  Response.Write "<a href=?page=1&pagenumber=" & i & ">" & i & "</a> "
  end If
  Next

  start = antal_beskeder_pr_side * (pagenumber - 1)
  count = 0
Avatar billede busschou Praktikant
29. maj 2005 - 09:56 #35
Dvs den viser kun 2 sider og burde vise 3
det er garanteret pga denne her
antal_sider = round(cint(antal_beskeder)/cint(antal_beskeder_pr_side))
Jeg kan huske jeg før har ledt efter en Ceil eller Floor funktion i VBscript uden held
Problemet er jo at Round afrunder tallet op eller ned
Hvis du har 23 beskeder så haves Round(2,3) = 2 sider
Hvis du har 26 beskeder så haves Round(2,6) = 3 sider
Det må kunne fikses ved at tage modulus. Hvis resten ved division er forskellig fra nul så skal der laves en ekstra side. Sådan her vil jeg tro..
---
pagenumber = request.querystring("pagenumber")
  if pagenumber = "" then
  pagenumber = "1"
  end if
  SQL = "SELECT COUNT(*) as count FROM messageboard"
  set RS = conn.execute(SQL)
  antal_beskeder = RS("count")
  response.write("Beskeder: " &"<b>"& antal_beskeder &" <br></b>")
  antal_beskeder_pr_side = 10
  rest = cint(cint(antal_beskeder) Mod cint(antal_beskeder_pr_side))
  antal_sider = round(cint(antal_beskeder)/cint(antal_beskeder_pr_side))
  if rest > 0 then
    antal_sider = antal_sider + 1
  end if
  Response.Write "Side: "
  if antal_sider = 0 then
  Response.Write " [" & "<b>" & 1 &"</b>" & "] "
  end if
  For i = 1 To antal_sider
  If i&"" = pagenumber Then
  Response.Write " [" & "<b>" & i &"</b>" & "] "
  Else
  Response.Write "<a href=?page=1&pagenumber=" & i & ">" & i & "</a> "
  end If
  Next

  start = antal_beskeder_pr_side * (pagenumber - 1)
  count = 0
---
Avatar billede ban_me Nybegynder
29. maj 2005 - 16:41 #36
Jo tak, det virker :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester