Ir para conteúdo

POWERED BY:

Arquivado

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

leonardobpolo

Paginação ASP com MySQL

Recommended Posts

Meu site estava todo em access e resolvi passar ele para MySQL.

 

E o MySQL tem umas par de coisa que é diferente, já consegui resolver tudo esceto a páginação, que eu achei uma que segundo os caras funcionava, deem uma olhada no codigo:

 

<!--#Include File="arquivo_de_conexao.asp"-->
      <%

ord = request.QueryString("ord")

Call AbreConn()

'pega a pagina atual
pagina = request.ServerVariables("SCRIPT_NAME")

'numero de registros por pagina...
pageSize = 20

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 jogosonline where simulador like '%x%'"
set rs = conn.execute(sql)

'total de registros
recordCount = Cint(rs("total"))

'calculamos o numero de paginas...

pageCount = Clng(recordCount / pageSize)

If pageCount < 1 then
pageCount = 1
end if

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 jogosonline where simulador like '%x%' order by "&ord&" LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

set rs = conn.execute(sql)
          
do while not rs.eof
' aqui entra o q você quer exibir
   response.write "<table width='610' border='0' cellspacing='0' cellpadding='0'><tr><td width='80' height='80' valign='top'><a href='exibegame.asp?id=" & RS("codigo") & "'><img src='imagens/jogosswf/" & RS("foto") & "' width='75' height='75' border='0'></a></td><td width='220' valign='top'><p><strong><a href='exibegame.asp?id=" & RS("codigo") & "'>" & RS("titulo") & "</a></strong></p><p class='style5'>" & left(RS("descricao"), 100) & "...</p></td><td width='10'> </td>" & RS.MoveNext & "<td width='80' height='80' valign='top'><a href='exibegame.asp?id=" & RS("codigo") & "'><img src='imagens/jogosswf/" & RS("foto") & "' width='75' height='75' border='0'></a></td><td width='220' valign='top'><p><strong><a href='exibegame.asp?id=" & RS("codigo") & "'>" & RS("titulo") & "</a></strong></p><p class='style5'>" & left(RS("descricao"), 100) & "...</p></td></tr></table>"
  rs.MoveNext()
loop

rs.Close()
set rs = nothing
Call FechaConn()
set conn = nothing

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&"?ord="&ord&"?p=" & paginaAtual - 1 &"'>Anterior</a> "
Else
Response.Write "<font color='#666666'>Anterior</font>  "
END IF

for i=1 to pageCount
  Response.Write("<a href='"&pagina&"?ord="&ord&"?p=" & i & "'>" & i & "</a> ")
next
  

IF (CInt(paginaAtual) < pagecount) THEN
         IF CInt(PF) <> pagecount THEN
   Response.Write "<a href='"&pagina&"?ord="&ord&"?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&"?ord="&ord&"?p=" & pagecount & "'>Última</a> "
  END IF
Else
  Response.Write "<font color=""#ADADAD"">Última</font> "
  END IF
  
%>

Só que estou tendo problemas, a primeira pagina funciona normal, mais quando clica para ir a segunda dá o seguinte erro:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]SQLBindParameter not used for all parameters

/gamesonlinesimulador.asp, line 477

 

Pelo o que eu vi, o erro só aparece quando a variavel ?p aparece na URL, ae da pal. Acredito ser erro nessa parte do código:

if(len(Request.QueryString("p")) = 0 )then
  paginaAtual = 1
else
  paginaAtual = CInt(Request.QueryString("p"))
end if

alguem sabe o que é e como concertar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

<%

Call AbreConn()

'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 nome_da_tabela"
set rs = conn.execute(sql)

'total de registros
recordCount = Cint(rs("total"))

'calculamos o numero de paginas...

pageCount = Clng(recordCount / pageSize)

If pageCount < 1 then
pageCount = 1
end if

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 nome_da_tabela LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

set rs = conn.execute(sql)
	  
do while not rs.eof
' aqui entra o q você quer exibir
  Response.Write rs("nome_do_primeiro_campo") &" - "& rs("nome_do_segundo_campo") & "<br>"
  rs.MoveNext()
loop

rs.Close()
set rs = nothing
Call FechaConn()
set conn = nothing

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

for i=1 to pageCount
  Response.Write("<a href='"&pagina&"?p=" & i & "'>" & i & "</a> ")
next
  

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
  
%>

Abaixo está o arquivo que faz a conexão com o banco "arquivo_de_conexao.asp"

 

<%
dim conn

Sub AbreConn()

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

conn.Open = "Driver={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=Nome_do_banco; UID=seu_usuario; PWD=sua_senha;" 

End Sub


Sub FechaConn()

conn.Close()
Set conn = Nothing

End Sub

%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais esse exemplo é o codigo que eu peguei e alterei o sql para filtrar os resultados que nem tava antes quando eu usava o access, o que eu quero saber é como fazer isso funcionar na segunda pagina!

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é a linha 477

 

dá um response.write na sua string SQL para ver o k esta sendo passado, Este erro é devido ,um nome do campo digitado incorretamente,Um ou mais dos valores estava em branco, ou tentando inserir o tipo de dados errado (por exemplo, um valor numérico com aspas, ou esqueceu de colocar aspas em uma string).

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual é a linha 477

 

dá um response.write na sua string SQL para ver o k esta sendo passado, Este erro é devido ,um nome do campo digitado incorretamente,Um ou mais dos valores estava em branco, ou tentando inserir o tipo de dados errado (por exemplo, um valor numérico com aspas, ou esqueceu de colocar aspas em uma string).

 

Ae cara acho que descobri o que é, vou só confirmar e se naão for eu explico melhor, mais mesmo assim vlw ae pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sem problemas, kker coisa posta ae...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema estava aqui:

' 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&"?ord="&ord&"?p=" & paginaAtual - 1 &"'>Anterior</a> "
Else
Response.Write "<font color='#666666'>Anterior</font>  "
END IF

for i=1 to pageCount
  Response.Write("<a href='"&pagina&"?ord="&ord&"?p=" & i & "'>" & i & "</a> ")
next
  

IF (CInt(paginaAtual) < pagecount) THEN
         IF CInt(PF) <> pagecount THEN
   Response.Write "<a href='"&pagina&"?ord="&ord&"?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&"?ord="&ord&"?p=" & pagecount & "'>Última</a> "
  END IF
Else
  Response.Write "<font color=""#ADADAD"">Última</font> "
  END IF

No link está "&pagina&"?ord="&ord&"?p=" e no lugar da segunda "?" seria serto um "&" porque é a segunda variavel http://forum.imasters.com.br/public/style_emoticons/default/shifty.gif

 

Mais me surgiu outro problema se alguem souber eu agradeço e muito, tipo algumas paginas usam dois registros por looping na paginação se estas tiverem um numero impar a ultima dá pal e tudo o que vem depois dela não é lido! alguem sabe como consertar, acredito que precise de algum IF em algum lugar, se alguem solber me avisem.

 

Obrigado pela ajuda que já foi dada, e obrigado desde de já pela a nova ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele gera algum erro , ou siplesmente naun faz a paginacaun

olha este exemplo, pode te ajudar, dá uma analisada

 

<%
Dim Conexao
Set Conexao = Server.CreateObject("Adodb.Connection")
Conexao.ConnectionString = "driver=MySQL ODBC 5.1 Driver;server=localhost;uid=root;pwd=;database=seu_banco"
Conexao.Open
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Paginação com ASP e MySQL</title>
</head>

<style media="screen" type="text/css">
body{width:100%; height:100%;margin:0; padding:0; font:12px "Trebuchet MS";margin:0 auto; text-align:center;}
#quadro{background:#f7f7f7; width:540px; min-height:300px; margin:0 auto; padding:5px; text-align:left;}
#col-01{width:20px; float:left;background:#f1f1f1;margin:2px;text-align:center;padding:2px;}
#col-02{width:500px; float:left;background:#f1f1f1;margin:2px;padding:2px;}
#indice{text-align:center; padding: 20px 0 0 0}
#paginacao{text-align:center; padding: 20px 0 0 0}

.pag-atual{float:left; padding:4px; background:#c00; color:#fff; margin:3px;}
.pag-pontinhos{float:left; padding:4px; background:#E8E8E8; color:#999; margin:3px;}
.pag-navegacao-off{float:left; padding:4px; background:#E8E8E8; color:#999; margin:3px;}

.pag-link{float:left; padding:4px; background:#fff; margin:3px;}
.pag-link a{color:#c00;text-decoration:none;}
.pag-link a:hover{color:#000;text-decoration:underline;}

.pag-navegacao{float:left; padding:4px; background:#fff; margin:3px;}
.pag-navegacao a{color:#c00;text-decoration:none;}
.pag-navegacao a:hover{color:#000;text-decoration:underline;}
</style>

<body>

<div id="quadro">

<h2>Paginação com ASP e MySQL</h2>

<%
Dim rs, PagNav, TotalPag
Dim Anterior, Proximo, PagAtual, PaginaVisita
Set rs = Server.CreateObject("Adodb.RecordSet")
	
Conexao.CursorLocation = 3
rs.pagesize = 3
rs.Open "Select * From tbl_noticias Order By id_not Desc",Conexao
	
If rs.Eof Then
Response.Write("Não há registros")
Else
PagNav = CInt(Request.QueryString("pagina"))
If PagNav = 0 Then : PagNav = 1 : End If
	
rs.AbsolutePage = PagNav
TotalPag = rs.PageCount
%>

<div id="dados">

<% While Not rs.Eof And rs.AbsolutePage = PagNav %>

<div id="col-01"><% Response.Write(rs("id_not")) %></div>
<div id="col-02"><% Response.Write(rs("titulo_not")) %></div>

<%
rs.MoveNext : Wend

Anterior = PagNav - 1
Proximo = PagNav + 1

If Anterior <= 0 Then : Anterior = 1 : End If
If Proximo > TotalPag Then : Proximo = TotalPag : End If
%>

</div>

<div id="indice">
<%
If Request.QueryString("pagina") = "" Then
Response.Write("Página 1 de "&TotalPag&"")
Else
Response.Write("Página "&Request.QueryString("pagina")&" de "&TotalPag&"")
End If 
%>
</div>   
		
		
<div id="paginacao">
		
<%
PaginaVisita = CInt(Request.QueryString("pagina"))

MontaLink = Request.ServerVariables("SCRIPT_NAME")+"?variavel=teste&"

If PagNav = 1 Then
Response.Write("<div class='pag-navegacao-off'> « primeira </div>")
else
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina=1""> « primeira </a></div>")
end if

If PagNav > 1 Then
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&Anterior&"""> «anterior </a></div>")
else
Response.Write("<div class='pag-navegacao-off'> «anterior </div>")
End If

 
If PagNav > 5 Then
Response.Write("<div class='pag-pontinhos'> ... </div>")
End If


If PagNav <= 5 Then
If TotalPag >= 5 Then
For PagAtual = 1 To 5
If PagNav = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
Else

For PagAtual = 1 To TotalPag
If PagNav = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
End If
End If
		
	 
If PagNav > 5 Then
PagNav = PagNav + 4
Pg = PagNav
MaxB = Request.QueryString("pagina") - 1

			
If (MaxB + 1) = TotalPag Then
For PagAtual = MaxB To Pg - 4
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next			


ElseIf (MaxB + 2) = TotalPag Then
For PagAtual = MaxB To Pg - 3
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
Else


For PagAtual = (MaxB - 1) To Pg - 2
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
End If
End If

		
If (TotalPag <> PaginaVisita) And (TotalPag > 5) Then
Response.Write("<div class='pag-pontinhos'> ... </div>")
End If


If PaginaVisita = TotalPag Then 
Response.Write("<div class='pag-navegacao-off'> próxima» </div>")
else 
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&Proximo&"""> próxima» </a></div>")End If

If PaginaVisita = TotalPag Then
Response.Write("<div class='pag-navegacao-off'> última » </div>")
else
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&TotalPag&"""> última » </a></div>")
end if

%>

</div>

<%
End If
Set rs = Nothing
%>

</div>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o exemplo k postei, e o jonathan observou bem, você tem o

pageSize = 20, mas naun setou o CursorLocation , o CursorLocation pode ter 2 valores, adUseServer e adUseClient, ao usar o adUseServer , o recordset utiliza o cursor fornecido pelo provedor de dados, ja usando o adUseClient permite ao recordset usar o cursordo lado cliente, dependendo do tipo utilizado teremos acesso a certas funcionalidades, para por exemplo usar Find,Sortupdate em batch,etc

 

2 : Modo servidor

3 : Modo cliente (o mais rapido)

 

 

Conexao.CursorLocation = 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha o exemplo k postei, e o jonathan observou bem, você tem o

pageSize = 20, mas naun setou o CursorLocation , o CursorLocation pode ter 2 valores, adUseServer e adUseClient, ao usar o adUseServer , o recordset utiliza o cursor fornecido pelo provedor de dados, ja usando o adUseClient permite ao recordset usar o cursordo lado cliente, dependendo do tipo utilizado teremos acesso a certas funcionalidades, para por exemplo usar Find,Sortupdate em batch,etc

 

2 : Modo servidor

3 : Modo cliente (o mais rapido)

 

 

Conexao.CursorLocation = 3

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve moçada,

 

procurei muito por uma paginação, encontrei essa e ela está perfeita,

porém

 

tenho 20 registros

mando exibir 25 ou 99 registros

mesmo assim ele fica com os botões, próxima ou ultima ATIVOS

 

alguem poderia me dar uma ajuda,

 

gostaria de ficar com essa paginação,

a melhor que encontrei ....

 

 

desde já agradeço

att

Lennon

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, pode te ajudar...

<%
Dim Conexao
Set Conexao = Server.CreateObject("Adodb.Connection")
Conexao.ConnectionString = "driver=MySQL ODBC 5.1 Driver;server=localhost;uid=root;pwd=;database=seu_banco"
Conexao.Open
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Paginação com ASP e MySQL</title>
</head>

<style media="screen" type="text/css">
body{width:100%; height:100%;margin:0; padding:0; font:12px "Trebuchet MS";margin:0 auto; text-align:center;}
#quadro{background:#f7f7f7; width:540px; min-height:300px; margin:0 auto; padding:5px; text-align:left;}
#col-01{width:20px; float:left;background:#f1f1f1;margin:2px;text-align:center;padding:2px;}
#col-02{width:500px; float:left;background:#f1f1f1;margin:2px;padding:2px;}
#indice{text-align:center; padding: 20px 0 0 0}
#paginacao{text-align:center; padding: 20px 0 0 0}

.pag-atual{float:left; padding:4px; background:#c00; color:#fff; margin:3px;}
.pag-pontinhos{float:left; padding:4px; background:#E8E8E8; color:#999; margin:3px;}
.pag-navegacao-off{float:left; padding:4px; background:#E8E8E8; color:#999; margin:3px;}

.pag-link{float:left; padding:4px; background:#fff; margin:3px;}
.pag-link a{color:#c00;text-decoration:none;}
.pag-link a:hover{color:#000;text-decoration:underline;}

.pag-navegacao{float:left; padding:4px; background:#fff; margin:3px;}
.pag-navegacao a{color:#c00;text-decoration:none;}
.pag-navegacao a:hover{color:#000;text-decoration:underline;}
</style>

<body>

<div id="quadro">

<h2>Paginação com ASP e MySQL</h2>

<%
Dim rs, PagNav, TotalPag
Dim Anterior, Proximo, PagAtual, PaginaVisita
Set rs = Server.CreateObject("Adodb.RecordSet")
    
Conexao.CursorLocation = 3
rs.pagesize = 3
rs.Open "Select * From tbl_noticias Order By id_not Desc",Conexao
    
If rs.Eof Then
Response.Write("Não há registros")
Else
PagNav = CInt(Request.QueryString("pagina"))
If PagNav = 0 Then : PagNav = 1 : End If
    
rs.AbsolutePage = PagNav
TotalPag = rs.PageCount
%>

<div id="dados">

<% While Not rs.Eof And rs.AbsolutePage = PagNav %>

<div id="col-01"><% Response.Write(rs("id_not")) %></div>
<div id="col-02"><% Response.Write(rs("titulo_not")) %></div>

<%
rs.MoveNext : Wend

Anterior = PagNav - 1
Proximo = PagNav + 1

If Anterior <= 0 Then : Anterior = 1 : End If
If Proximo > TotalPag Then : Proximo = TotalPag : End If
%>

</div>

<div id="indice">
<%
If Request.QueryString("pagina") = "" Then
Response.Write("Página 1 de "&TotalPag&"")
Else
Response.Write("Página "&Request.QueryString("pagina")&" de "&TotalPag&"")
End If 
%>
</div>   
        
        
<div id="paginacao">
        
<%
PaginaVisita = CInt(Request.QueryString("pagina"))

MontaLink = Request.ServerVariables("SCRIPT_NAME")+"?variavel=teste&"

If PagNav = 1 Then
Response.Write("<div class='pag-navegacao-off'> « primeira </div>")
else
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina=1""> « primeira </a></div>")
end if

If PagNav > 1 Then
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&Anterior&"""> «anterior </a></div>")
else
Response.Write("<div class='pag-navegacao-off'> «anterior </div>")
End If


If PagNav > 5 Then
Response.Write("<div class='pag-pontinhos'> ... </div>")
End If


If PagNav <= 5 Then
If TotalPag >= 5 Then
For PagAtual = 1 To 5
If PagNav = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
Else

For PagAtual = 1 To TotalPag
If PagNav = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
End If
End If
        
     
If PagNav > 5 Then
PagNav = PagNav + 4
Pg = PagNav
MaxB = Request.QueryString("pagina") - 1

            
If (MaxB + 1) = TotalPag Then
For PagAtual = MaxB To Pg - 4
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next            


ElseIf (MaxB + 2) = TotalPag Then
For PagAtual = MaxB To Pg - 3
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
Else


For PagAtual = (MaxB - 1) To Pg - 2
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
End If
End If

        
If (TotalPag <> PaginaVisita) And (TotalPag > 5) Then
Response.Write("<div class='pag-pontinhos'> ... </div>")
End If


If PaginaVisita = TotalPag Then 
Response.Write("<div class='pag-navegacao-off'> próxima» </div>")
else 
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&Proximo&"""> próxima» </a></div>")End If

If PaginaVisita = TotalPag Then
Response.Write("<div class='pag-navegacao-off'> última » </div>")
else
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&TotalPag&"""> última » </a></div>")
end if

%>

</div>

<%
End If
Set rs = Nothing
%>

</div>

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo, pode te ajudar...

<%
Dim Conexao
Set Conexao = Server.CreateObject("Adodb.Connection")
Conexao.ConnectionString = "driver=MySQL ODBC 5.1 Driver;server=localhost;uid=root;pwd=;database=seu_banco"
Conexao.Open
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Paginação com ASP e MySQL</title>
</head>

<style media="screen" type="text/css">
body{width:100%; height:100%;margin:0; padding:0; font:12px "Trebuchet MS";margin:0 auto; text-align:center;}
#quadro{background:#f7f7f7; width:540px; min-height:300px; margin:0 auto; padding:5px; text-align:left;}
#col-01{width:20px; float:left;background:#f1f1f1;margin:2px;text-align:center;padding:2px;}
#col-02{width:500px; float:left;background:#f1f1f1;margin:2px;padding:2px;}
#indice{text-align:center; padding: 20px 0 0 0}
#paginacao{text-align:center; padding: 20px 0 0 0}

.pag-atual{float:left; padding:4px; background:#c00; color:#fff; margin:3px;}
.pag-pontinhos{float:left; padding:4px; background:#E8E8E8; color:#999; margin:3px;}
.pag-navegacao-off{float:left; padding:4px; background:#E8E8E8; color:#999; margin:3px;}

.pag-link{float:left; padding:4px; background:#fff; margin:3px;}
.pag-link a{color:#c00;text-decoration:none;}
.pag-link a:hover{color:#000;text-decoration:underline;}

.pag-navegacao{float:left; padding:4px; background:#fff; margin:3px;}
.pag-navegacao a{color:#c00;text-decoration:none;}
.pag-navegacao a:hover{color:#000;text-decoration:underline;}
</style>

<body>

<div id="quadro">

<h2>Paginação com ASP e MySQL</h2>

<%
Dim rs, PagNav, TotalPag
Dim Anterior, Proximo, PagAtual, PaginaVisita
Set rs = Server.CreateObject("Adodb.RecordSet")
    
Conexao.CursorLocation = 3
rs.pagesize = 3
rs.Open "Select * From tbl_noticias Order By id_not Desc",Conexao
    
If rs.Eof Then
Response.Write("Não há registros")
Else
PagNav = CInt(Request.QueryString("pagina"))
If PagNav = 0 Then : PagNav = 1 : End If
    
rs.AbsolutePage = PagNav
TotalPag = rs.PageCount
%>

<div id="dados">

<% While Not rs.Eof And rs.AbsolutePage = PagNav %>

<div id="col-01"><% Response.Write(rs("id_not")) %></div>
<div id="col-02"><% Response.Write(rs("titulo_not")) %></div>

<%
rs.MoveNext : Wend

Anterior = PagNav - 1
Proximo = PagNav + 1

If Anterior <= 0 Then : Anterior = 1 : End If
If Proximo > TotalPag Then : Proximo = TotalPag : End If
%>

</div>

<div id="indice">
<%
If Request.QueryString("pagina") = "" Then
Response.Write("Página 1 de "&TotalPag&"")
Else
Response.Write("Página "&Request.QueryString("pagina")&" de "&TotalPag&"")
End If 
%>
</div>   
        
        
<div id="paginacao">
        
<%
PaginaVisita = CInt(Request.QueryString("pagina"))

MontaLink = Request.ServerVariables("SCRIPT_NAME")+"?variavel=teste&"

If PagNav = 1 Then
Response.Write("<div class='pag-navegacao-off'> « primeira </div>")
else
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina=1""> « primeira </a></div>")
end if

If PagNav > 1 Then
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&Anterior&"""> «anterior </a></div>")
else
Response.Write("<div class='pag-navegacao-off'> «anterior </div>")
End If


If PagNav > 5 Then
Response.Write("<div class='pag-pontinhos'> ... </div>")
End If


If PagNav <= 5 Then
If TotalPag >= 5 Then
For PagAtual = 1 To 5
If PagNav = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
Else

For PagAtual = 1 To TotalPag
If PagNav = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
End If
End If
        
     
If PagNav > 5 Then
PagNav = PagNav + 4
Pg = PagNav
MaxB = Request.QueryString("pagina") - 1

            
If (MaxB + 1) = TotalPag Then
For PagAtual = MaxB To Pg - 4
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next            


ElseIf (MaxB + 2) = TotalPag Then
For PagAtual = MaxB To Pg - 3
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
Else


For PagAtual = (MaxB - 1) To Pg - 2
If PaginaVisita = PagAtual Then
Response.Write("<div class='pag-atual'> "&PagAtual&" </div>")
Else
Response.Write("<div class='pag-link'><a href="""&MontaLink&"pagina="&PagAtual&"""> "&PagAtual&" </a></div>")
End If
Next
End If
End If

        
If (TotalPag <> PaginaVisita) And (TotalPag > 5) Then
Response.Write("<div class='pag-pontinhos'> ... </div>")
End If


If PaginaVisita = TotalPag Then 
Response.Write("<div class='pag-navegacao-off'> próxima» </div>")
else 
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&Proximo&"""> próxima» </a></div>")End If

If PaginaVisita = TotalPag Then
Response.Write("<div class='pag-navegacao-off'> última » </div>")
else
Response.Write("<div class='pag-navegacao'><a href="""&MontaLink&"pagina="&TotalPag&"""> última » </a></div>")
end if

%>

</div>

<%
End If
Set rs = Nothing
%>

</div>

</body>
</html>

do mesmo jeito

tenho 19 registros até o momento

 

mando exibir 25,

ele deixa ativo o botao proxima e ultima.

depois q clica em proxima ou ultima , os mesmos ficam inativos

 

mostra: Página 1 de 1

mas mesmo assim os botoes ficam ativos..

 

obrigado.

att

Lennon

Compartilhar este post


Link para o post
Compartilhar em outros sites

CursorLocation e pagesize, estaun corretos ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, tudo correto

 

http://www.giarettaimoveis.com.br/modelo/paginacao-sql.asp

 

o pagesize pelo q entendi é o numero de registros por páginas

tenho 19 registros

eu defino pagesize = 25

 

ele diz, pagina 1 de 1,

mas os botoes proxima e ultima ficam ativos

e quando clico em algum deles, ou seja, a "pagina" recebe valor 1

esses botoes ficam inativos.

 

obrigado

Lennon

Compartilhar este post


Link para o post
Compartilhar em outros sites

A propriedade PageSize define ou retorna um valor long que indica o número máximo de registros permitidos em uma única página de um objeto Recordset. O padrão é 10.

 

tenta adicionar isso na page

 

 

Const adOpenForwardOnly = 0

Const adLockReadOnly = 1

Const adCmdTableDirect = &H0200

Const adUseClient = 3

 

verifique se o AbsolutePage esta com o valor passado correto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

para efeitos de teste tente esse code

<% Option Explicit

' ADO constants used in this page
Const adOpenForwardOnly = 0
Const adLockReadOnly = 1
Const adCmdTableDirect = &H0200
Const adUseClient = 3
%>
<html>
<head>
 <style>
  body { font-family : Verdana; font-size : 8pt; }
  a { font-family : Verdana; font-size : 8pt;
   text-decoration : none; }
 </style>
</head>

<body>
<%
 Dim connStr
  connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
   Server.MapPath("paging.mdb")

 Dim rs
  Set rs = Server.CreateObject("ADODB.Recordset")

  rs.PageSize = 5
  rs.CacheSize = 5
  rs.CursorLocation = adUseClient

 rs.Open "Names", connStr, adOpenForwardOnly, adLockReadOnly, _
  adCmdTableDirect
 
 If Len(Request("pagenum")) = 0  Then
  rs.AbsolutePage = 1
 Else
  If CInt(Request("pagenum")) <= rs.PageCount Then
   rs.AbsolutePage = Request("pagenum")
  Else
   rs.AbsolutePage = 1
  End If
 End If

 Dim abspage, pagecnt
  abspage = rs.AbsolutePage
  pagecnt = rs.PageCount

 If Not rs.EOF Then
  Response.Write "PageCount : " & rs.PageCount & "<br>" & vbcrlf
  Response.Write "Absolute Page : " & rs.AbsolutePage & "<br>" & vbcrlf

  Response.Write "Número total de registros : " & rs.RecordCount
  Response.Write "<br><br>" & vbcrlf

  Dim fldF, intRec

  Response.Write "<table border=1 align=center cellpadding=3 "
  Response.Write "cellspacing=0><thead><tr>"
  For Each fldF in rs.Fields
   Response.Write "<td>" & fldF.Name & "</td>"
  Next
  Response.Write "</tr></thead><tbody>"

  For intRec=1 To rs.PageSize
   If Not rs.EOF Then
    Response.Write "<tr>"
    For Each fldF in rs.Fields
     Response.Write "<td>" & fldF.Value & "</td>"
    Next
    Response.Write "<tr>"
    rs.MoveNext
   End If
  Next
  Response.Write "</tbody></table><p>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

não consegui editar isso pra mysql

 

vou mexer um pouco pra ver se consigo arrumar essa questao de nao ativar os botoes quando tem somente uma pagina

 

caso consiga algo antes por favor poste aí

 

 

obrigado

 

Lennon

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.