tillmarMedlem sedan sep. 2002928 inlägg 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
%>
Tack på förhand!
/pontus :)
LarsGMedlem sedan dec. 200012 464 inlägg <%
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
%>
tillmarMedlem sedan sep. 2002928 inlägg yeeesss...det funka tackså mycket!:-)
CatZMedlem sedan jan. 20022 440 inlägg Jag stjäl detta med glatt samvete ;)
CatZMedlem sedan jan. 20022 440 inlägg hoppsan skrev jag det ? :P Men så posta jag lösningen också eller hur ? :)
SilvioFMedlem sedan juni 2000547 inlägg 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).
Någon somn har lust att hjälpa till?
tillmarMedlem sedan sep. 2002928 inlägg 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
tillmarMedlem sedan sep. 2002928 inlägg och då ser det ut som på denna sida https://www.tillmar.net och sen under gästbok!
SilvioFMedlem sedan juni 2000547 inlägg De nskriver fortfarande ut 24 sidor, även om det bara finns två sidor. =(
tillmarMedlem sedan sep. 2002928 inlägg hmmm....konstigt..menar du att den skriver ut 123456789 10 11 12 13 osv till 24?!
Hur ser din kod ut?!
/pontus
SilvioFMedlem sedan juni 2000547 inlägg 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.
SilvioFMedlem sedan juni 2000547 inlägg Jag fick till det.
Besök gärna sidan på http://www.fumei.net/forum
ConnyFoxMedlem sedan aug. 20011 087 inlägg 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)
PatrikBMedlem sedan mars 20002 836 inlägg Varför inte använda "de klassiska pagingen" med ADODB.Recordset?
cya,
/PatrikB
ConnyFoxMedlem sedan aug. 20011 087 inlägg I mitt fall så är det ingen större risk att det uppkommer en massa nya under tiden.
Använder limit för jag tycker det är en enkel och smidig metod.