Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Debukis Ondeteibou

Paginação em MySQL

Recommended Posts

tenho um código asp de paginacao com MySQL

 

ASP
<%

Conexao()

'pega a pagina atual

pagina = request.ServerVariables("SCRIPT_NAME")

 

'numero de registros por pagina...

pageSize = 10

 

if(len(Request.QueryString("p")) = 0 )then

  paginaAtual = 1

else

  paginaAtual = CInt(Request.QueryString("p"))

end if

 

' conta o numero de registros...

sql = "SELECT COUNT(*) AS total FROM tabela"

set rs = Conexao.execute(sql)

 

'total de registros

recordCount = Cint(rs("total"))

 

'calculamos o numero de paginas...

 

pageCount = Clng(recordCount / pageSize)

 

rs.Close()

 

 

Flag1 = INT(paginaAtual / pagesize)

 

PI = INT(Flag1 * pagesize)

 

IF PI = 0 THEN

PI = 1

END IF

PF = PI + pagesize - 1

 

' selecionamos os registros...

sql = "SELECT * FROM tabela ORDER by ID DESC LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

 

set rs = Conexao.execute(sql)

         

do while not rs.eof %>

<% If not rs.eof Then %>

  <%=Replace(rs("campo"),chr(13),"<br>")%><br>

<span class="timeart"><i><%=rs("campo")%></i></span>

  </span>

  <% Else %>

  <div align="center">Nenhum registro até o momento!</div>

  <% End If %>

  <br><br>

        <%

        rs.movenext

  loop %>

</div>

        </span></p>

  <div id="div3">  <p align="center"><% Response.Write ("<B><strong> Página " & paginaAtual & " de " & pagecount & " </strong></B><br>")

' cria os links de paginas...

IF CInt(paginaAtual) > 1 THEN

Response.Write "<a href='"&pagina&"?p=1'>Primeira</a> "

END IF

 

if CInt(paginaAtual) > 1 then

Response.Write "<a href='"&pagina&"?p=" & paginaAtual - 1 &"'>Anterior</a> "

END IF

 

PagAtual = Request("p")

   max_n_mostrados = 5

 

intervalo = Int(max_n_mostrados /2)

inicio = PagAtual - intervalo

final = PagAtual + intervalo

 

If CInt(inicio) <1 Then

 inicio = 1

 final = 10

END IF

If CInt(final) > CInt(pagecount) Then final = pagecount

 

For i = inicio To final

         If CInt(i)=CInt(PagAtual) Then

                 Response.Write "<B> [" & i & "] </B>  "

         END IF

         If CInt(i) < CInt(PagAtual) Then

          Response.Write "<a href='?p=" & i & "'>" & i & "</a>  "

         END IF

         If CInt(i) > CInt(PagAtual) Then

                 Response.Write "<a href='?p=" & i & "'>" & i & "</a>  "

  END IF

Next

 

 

IF (CInt(paginaAtual) < pagecount) THEN

         IF CInt(PF) <> pagecount THEN

   Response.Write "<a href='"&pagina&"?p=" & paginaAtual+1 & "'>Próxima</a> "

  END IF

END IF

 

 

IF (CInt(paginaAtual) <> pagecount) THEN

         IF CInt(PF) <> pagecount THEN

   Response.Write "<a href='"&pagina&"?p=" & pagecount & "'>Última</a> "

  END IF

  END IF %>

 

Peguei esse script na net! não tem problema nele, exceto que ele não me mostra a quantidade de páginas corretamente!!!

 

por exemplo...nesse script botei para mostrar 10 registros por página

eu estava com 13 registros e o script mostrava apenas uma página!

 

ele pagina os registros certinho na ordem que eu quero...mas os registros que vão para outras páginas ficam "ocultos" por a quantidade de páginas informadas estar errada.

 

Agradeço quem puder me ajudar nessa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê uma olhada no tópico pendurado chamado "Duvidas Frequentes", lá há uma dica sobre paginação em MySQL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.