Tja har kolla runt lite i detta forum på paging med limit men inte fattat rikitg hur det funkar....undrar om nån skulle kunna stoppa in den paginen i denna kod nedan och sen skriva kommentarer så jag fattar! :stud
Här kommer koden!:
<%
Set MinConn = Server.CreateObject("Adodb.Connection")
MinConn.open = "driver=MySQL;server=localhost;uid=uid;pwd=pwd;database=db"
SQL = "Select * from inlagg order by datum desc"
Set Rs = MinConn.Execute(SQL)
Do until Rs.Eof
%>
Namn:<%=RS("namn")%>
Inlägg:<%=RS("inlagg")%>
<%
RS.movenext
loop
RS.close : Set Rs = Nothing
MinConn.close : Set MinConn = Nothing
%>
<%
pageSize = 10
page = requets.querystring("page")
if page = "" then page = 1
Set MinConn = Server.CreateObject("Adodb.Connection")
MinConn.open = "driver=MySQL;server=localhost;uid=uid;pwd=pwd;database=db"
sql = "select count(*) from inlagg"
'behövs för att beräkna antal sidor
set rs = MinConn.execute(SQL)
pages = (rs(0)-1)/pageSize + 1
SQL = "Select * from inlagg order by datum desc limit " & (page-1)*pagesize & "," & pageSize
Set Rs = MinConn.Execute(SQL)
Do until Rs.Eof
%>
Namn:<%=RS("namn")%>
Inlägg:<%=RS("inlagg")%>
<%
RS.movenext
loop
RS.close : Set Rs = Nothing
MinConn.close : Set MinConn = Nothing
'skriv ut länkar
if page > 1 then
response.write "<a href='paging.asp?page=" & page - 1 & "'>Bakåt </a>"
end if
if page < pages then
response.write "<a href=paging.asp?page=" & page + 1 & ">Framåt </a>"
end if
%>
Skriva ut sidnummer istället för "bakåt" och "framåt"?
Jag använder ovanstående kod för att få till paging i mitt forum där jag använder MySql.
Nu undrar jag hur man gör för att skriva ut antal sidor (1 2 3 4 osv.), och markera aktuell sida, med hjälp av denna kod.
Jag provade med att köra en for-loop där jag räknade upp 1 till och med pages, men det funkade inte utan den räknade alltid upp 24 sidor, oavsett hur många sidor det egentligen är (det är 2 sidor just nu).
jag kör denna kod för att skriva ut sid nummren mm!
'för att visa en bakåt knapp
if page > 1 then
response.write "<a href='?sida=gastbok&Page=" & page - 1 & "'> « </a>"
end if
'visa alla sidnummer
FOR a = 1 to Pages
IF a \<\> cINT( Page ) THEN
Response.Write "\<a href='?sida=gastbok&Page="& a &"'\>"& a &"\</a\>"
ELSE
Response.Write " \["& a & "\] "
end if
next
'en framåtknapp
if page \< pages or page = 1 then
response.write "\<a href=?sida=gastbok&page=" & page + 1 & "\> » \</a\>"
end if
som LarsG's kod i den här tråden, med skillnaden att fäljande kod
if page > 1 then
response.write "<a href='paging.asp?page=" & page - 1 & "'>Bakåt </a>"
end if
if page < pages then
response.write "<a href=paging.asp?page=" & page + 1 & ">Framåt </a>"
end if
är utbytt mot följande kod:
'för att visa en bakåt knapp
if page > 1 then
response.write "<a href='?sida=gastbok&Page=" & page - 1 & "'> « </a>"
end if
'visa alla sidnummer
FOR a = 1 to Pages
IF a <> cINT( Page ) THEN
Response.Write "<a href='?sida=gastbok&Page="& a &"'>"& a &"</a>"
ELSE
Response.Write " ["& a & "] "
end if
next
'en framåtknapp
if page < pages or page = 1 then
response.write "<a href=?sida=gastbok&page=" & page + 1 & "> » </a>"
end if
har ändrat namnet på recordseten och db-kopplingarna så att dessa stämmer med mina egna, annars är koden identisk.
hade tänkt att göra en paging med limit själv men eftersom det fans en här så implenterade jag den istället med modifikationer.
Funkar fin fint! tackar!
En liten sak att tänka på: LIMIT bör man inte köra på en tabell som det ändras i mycket, då kan det bli lite knas med pagingen (att det har dykt upp nya sidor medans man läser ex ett foruminlägg etc)