Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Moreira

Paginação ASP + MySQL

Recommended Posts

Ola pessoal é o seguinte consegui uma paginação legal de ASP + MYSQL

 

Funciona redondinha, só tem um detalhe!

 

ela lista assim:

 

Primeira | Anterior || Próxima | Última

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

 

 

O detalhe é o seguinte na paginação dos numeros ele vai listando e nao colocar um limite igual do google

 

teria que ser assim

 

Primeira | Anterior || Próxima | Última

1 2 3 4 5 6 7 8 9 10

 

ai conforme vai listando os demais ai sim aparece a pagina 11 12 13 14... e assim por diante

 

O Codigo esta redondinho só falta esse detalhe

 

Se conseguirmos deixar ele mais coerente é legal colocar no laboratório de scripts

Abraço pessoal e tomara que consigamos

 

segue o codigo

ASP
<%

Set ObjConn = Server.CreateObject("ADODB.Connection")

 

ObjConn.ConnectionString = "Driver=MySQL ODBC 3.51 Driver; Server=127.0.0.1; Uid=root; Pwd=root; Database=loja1"

ObjConn.CursorLocation = 3 '<- Cursor de conexão

 

ObjConn.Open '<- Abre a conexão

 

'pega a pagina atual

pagina = request.ServerVariables("SCRIPT_NAME")

 

'numero de registros por pagina...

pageSize = 1

 

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 administradores"

set rs = ObjConn.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 administradores LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

 

set rs = ObjConn.execute(sql)

     

do while not rs.eof%>

 

<table width="300" border="1" cellspacing="0" cellpadding="0">

  <tr>

    <td>

 

<%

' aqui entra o q você quer exibir

  Response.Write rs("nome")

%>

    </td>

  </tr>  <%rs.MoveNext()

loop

rs.Close()

set rs = nothing

ObjConn.Close()

set ObjConn = nothing

%>

</table>

<p>

  <%

 

Response.Write ("<B><strong> Página " & paginaAtual & " de " & pagecount & " </strong></B><br>")

' cria os links de pagians...

IF CInt(paginaAtual) > 1 THEN

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

Else

Response.Write "<font color=""#ADADAD"">Primeira</font> "

END IF

%>

  <%

if CInt(paginaAtual) > 1 then

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

Else

Response.Write "<font color='#666666'>Anterior</font>  "

END IF

%>

  <%

 

 

IF (CInt(paginaAtual) < pagecount) THEN

     IF CInt(PF) <> pagecount THEN

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

  END IF

Else

  Response.Write "<font color=""#ADADAD"">Próxima</font> "

END IF

 

 

IF (CInt(paginaAtual) <> pagecount) THEN

     IF CInt(PF) <> pagecount THEN

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

  END IF

Else

  Response.Write "<font color=""#ADADAD"">Última</font> "

  END IF

%>

  <BR>

 

<%

for i=1 to pageCount

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

next

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa mudar apenas este final

 

ASP
<%

for i=1 to pageCount

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

next

%>

 

quantas paginas quer antes e depois da atual?

 

diz ai que te ajudo a adaptar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por exemplo vamos imaginar listando 100 registros 5 por pagina

 

daria 20 paginas

 

hoje ele esta assim:

 

Primeira | Anterior || Próxima | Última

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

 

Gostaria que na primeira pagina ficasse assim:

 

Primeira | Anterior || Próxima | Última

1 2 3 4 5 6 7 8 9 10

 

ai conforme for mudando vai liberando igual do google

 

abraços.. estarei aqui o dia td hoje.. vou ver se consigo finalizar ainda hoje

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao a logica é voce usar a pagina atual para saber as demais

 

tipo assim caso queira 5 antes e cinco depois

 

ASP
<%

IF paginaAtual - 5 > 0 THEN INICIO = paginaAtual - 5 ELSE INICIO = 1 END IF

IF paginaAtual + 5 < pagecount THEN FIM= paginaAtual + 5 ELSE FIM = pagecount END IF

 

FOR i=INICIO  to FIM

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

NEXT

%>

 

veja que erros ocorrem

Compartilhar este post


Link para o post
Compartilhar em outros sites

marioufpa

 

Ta indo kra... mas agora ta acntecendo o seguinte

 

1 pagina.

tah assim

1 2 3 4 5 6

 

dai conforme vou clicando, exemplo clico na pagina 2 ai fica assim

1 2 3 4 5 6 7

 

pagina 3

1 2 3 4 5 6 8

 

pagina 4

1 2 3 4 5 6 8 9

 

ateh a 11ª dai depois lista 11

1 2 3 4 5 6 7 8 9 10 11

 

dai depois ja muda na 12ª

2 3 4 5 6 7 8 9 10 11 12

 

o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ateh aqui acho que td bem... esta rodando só este porem acima

 

Como faço para deixar negrito o numero quando estiver na pagina dele

exemplo

 

1 2 3 4 5 6

 

 

???

 

Consegui Galera só fica essa questão

 

1 pagina.

tah assim

1 2 3 4 5 6

 

dai conforme vou clicando, exemplo clico na pagina 2 ai fica assim

1 2 3 4 5 6 7

 

pagina 3

1 2 3 4 5 6 8

 

pagina 4

1 2 3 4 5 6 8 9

 

ateh a 11ª dai depois lista 11

1 2 3 4 5 6 7 8 9 10 11

 

dai depois ja muda na 12ª

2 3 4 5 6 7 8 9 10 11 12

 

o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao

 

é porque eu fiz para ficar 5 paginas antes e 5 depois da atual

 

isso vai acontecer até sair de perto das primeiras ou chegar perto das ultimas

 

do jeito que ta o maxmo serão 11 paginas

 

mas da para configurar é so ver como quer

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.