webForumDet fria alternativet

Paging med Limit!?

19 svar · 2 585 visningar · startad av tillmar

tillmarMedlem sedan sep. 2002928 inlägg
#1

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
#2
<%
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
#3

yeeesss...det funka tackså mycket!:-)

CatZMedlem sedan jan. 20022 440 inlägg
#4

Jag stjäl detta med glatt samvete ;)

Jesper TMedlem sedan nov. 20017 144 inlägg
#5

CatZ skrev:

CatZ skrev:

En sann mästare lär aldrig ut alla sina hemligheter, då skulle han snart inte vara en sann mästare längre

.... §e :e ;)

CatZMedlem sedan jan. 20022 440 inlägg
#6

hoppsan skrev jag det ? :P Men så posta jag lösningen också eller hur ? :)

SilvioFMedlem sedan juni 2000547 inlägg
#7

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
#8

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 "&nbsp;\["& a & "\]&nbsp;"
end if
next

'en framåtknapp
if page \< pages or page = 1 then
response.write "\<a href=?sida=gastbok&page=" & page + 1 & "\>&nbsp;&nbsp;» \</a\>"
end if
tillmarMedlem sedan sep. 2002928 inlägg
#9

och då ser det ut som på denna sida https://www.tillmar.net och sen under gästbok!

SilvioFMedlem sedan juni 2000547 inlägg
#10

De nskriver fortfarande ut 24 sidor, även om det bara finns två sidor. =(

tillmarMedlem sedan sep. 2002928 inlägg
#11

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
#12

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
#13

Jag fick till det.

Besök gärna sidan på http://www.fumei.net/forum

tillmarMedlem sedan sep. 2002928 inlägg
#14

SilvioF skrev:

Jag fick till det.

Besök gärna sidan på http://www.fumei.net/forum

Härliga tider! :h

G8Medlem sedan jan. 20011 213 inlägg
#15

Klockrent!

ConnyFoxMedlem sedan aug. 20011 087 inlägg
#16

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!

desdecadoMedlem sedan juli 2004206 inlägg
#17

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
#18

Varför inte använda "de klassiska pagingen" med ADODB.Recordset?

cya,
/PatrikB

ConnyFoxMedlem sedan aug. 20011 087 inlägg
#19

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.

InferisMedlem sedan sep. 2000670 inlägg
#20

Redigerat..

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