webForumDet fria alternativet

Paging och räkna träffar problem (MySQL)

ASP

2 svar · 433 visningar · startad av Alamartimo

Medlem sedan okt. 2004129 inlägg
Frågan#1

Hejsan!

Har använt mig av LarsG's sätt att köra paging med Limit.

LarsG Paging med limit

Funkar klockrent med pagingen men jag vill ha med en räknare för samtliga poster som finns på alla sidor som används i pagingen.

Låt säga att jag använder pagesize = 10 och jag har totalt 20st poster som ska skrivas ut på 2 sidor. Får inte till det med att den ska visa numrering utan det blir från 1 - 10 på båda sidor men en count = count + 1.
På sidan 2 ska den alltså fortsätta med räkningen från 11 - 20.

Koden jag använder är som nedan:

pageSize = 10
page = request.querystring("page")
if page = "" then page = 1
sql = "Select count(*) AS antal FROM Race Group By Dat" 
set rs = TConn.Execute(SQL)

antal2 = rs("antal")
pages = (clng(antal2) - 1)/pageSize + 1

	strSQL = "SELECT SUM(points) AS PSUM, Driver, Position FROM Race GROUP BY Driver ORDER BY PSUM DESC limit " & (page-1)*pagesize & "," & pageSize
	Set rsPSUM = TConn.Execute(strSQL)

Do Until rsPSUM.EOF

intPSUM = rsPSUM("PSUM")
intProc = (intPSUM/intTP)* 100

Count = Count + 1
%> 
        <tr> 
          <td width="36" background="../pics/redpos2.gif" height="15"> 
            <div align="left"><font size="1"><b><img src="../pics/blank.gif" width="6" height="8"><%= Count %></b></font></div>
          </td>
          <td width="164" height="15" background="../pics/namellist.gif"> 
            <div align="left"><font size="1"><b><img src="../pics/blank.gif" width="8" height="8"><%= rsPSUM("Driver") %></b></font></div>
          </td>
          <td width="45" height="15" background="../pics/pointslist.gif"><font size="1"><b><img src="../pics/blank.gif" width="6" height="8"><%= Round(intProc,2) %></b></font></td>
          <td width="45" height="15" background="../pics/pointslist.gif"><font size="1"><b><img src="../pics/blank.gif" width="8" height="8"><%= intPSUM %></b></font></td>
        </tr>
        <%
rsPSUM.MoveNext
Loop
rsPSUM.Close
set rsPSUM = Nothing
TConn.Close
set TConn = Nothing
%> 
      </table>
    </td>
    <td bgcolor="6B6B6B" height="34">&nbsp;</td>
  </tr>
  <tr>
    <td background="pics/buttomleft.gif" width="16" height="16">&nbsp;</td>
    <td bgcolor="6B6B6B">
      <div align="center">
<%
if page > 1 then
response.write "<b>" & "<a href='?sida=totalproc&Page=" & page - 1 & "'> «&nbsp;&nbsp;</a>" & "</b>"
end if

'visa alla sidnummer
FOR a = 1 to Pages
IF a <> cINT( Page ) THEN
Response.Write "<b>" & "<a href='?sida=totalproc&Page="& a &"'>"& a &"</a>" & "</b>"
ELSE
Response.Write "&nbsp;["& a & "]&nbsp;"
end if
next

'en framåtknapp
if page < pages or page = 1 then
response.write "<b>" & "<a href=?sida=gastbok&page=" & page + 1 & ">&nbsp;&nbsp;» </a>" & "</b>"
end if
%>
Medlem sedan dec. 20003 563 inlägg
#2

Nått i stil med detta borde fungera.
Vad du vill göra är att addera alla tidigare poster som inte visas på denna sida samt ligger före. Det är samma som antalet sidor före * antalet poster per sida.

Count = ((page-1) * pageSize)
Do Until rsPSUM.EOF

intPSUM = rsPSUM("PSUM")
intProc = (intPSUM/intTP)* 100

Count = Count + 1
...

edit: Vilket även användes för limit i sql-frågan såg jag nu.

Medlem sedan okt. 2004129 inlägg
#3

Fungerade perfekt. :)

Var inne på samma men hade inte med den sista Count = Count +1

Blir så ibland när man fastnar för länge med ett problem :D

Tack.

275 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)