Jump to content


Photo

[Resolvido] PaginaçãO Asp


  • Faça o login para participar
5 replies to this topic

#1 RF Programação

RF Programação

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 12/09/2009, 21:47

Olá amigos... Tô com um problema no meu código, estou precisando colocar uma paginação em ASP com banco MySQL, mas não tá funcionando o link das páginas na paginação (ex: página 1 2 3 4). A página 1 carrega normal mas os demais links não funcionam... :huh:

<%
Session.LCID = 1046
XXXPalavra = request.form("Palavra")
If Request.Form("Palavra")<>"" Then
	  dim dteInicial	  
	  dteInicial = Request.Form("txtDataInicial")
	  dteInicial = Year(dteInicial) & "-" & Month(dteInicial) & "-" & Day(dteInicial)
	  
	  dim dteFinal	  
	  dteFinal = Request.Form("txtDataFinal")
	  dteFinal = Year(dteFinal) & "-" & Month(dteFinal) & "-" & Day(dteFinal)
%>
<%
dim conexao
Sub Abreconexao()
%>

<!--#Include File="conexao.asp"-->

<%
End Sub
Sub Fechaconexao()
conexao.Close()
Set conexao = Nothing
End Sub
%>
<%
Call Abreconexao()

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

'NÚMERO DE REGISTROS POR PÁGINA...
pageSize = 10

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

' conta o número de registros...
sql = "SELECT COUNT(*) AS total FROM tabela WHERE NOME like '%"+XXXPalavra+"%' and DATA BETWEEN '"& dteInicial &"' and '"& dteFinal &"'  LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize
set rs = conexao.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 tabela WHERE NOME like '%"+XXXPalavra+"%' and DATA BETWEEN '"& dteInicial &"' and '"& dteFinal &"'  LIMIT " & (paginaAtual - 1) * pageSize & " , " & pageSize

set rs = conexao.execute(sql)
do while not rs.eof	  
%>

<div align="center">
<TABLE BORDER=0 width="681">
<% ID= rs("ID") %>

<tr>
<TD bgcolor="#D3D3D3" width="120" background="img/fundo_barra.jpg" style="background-repeat: repeat-x">
<font face="Verdana" size="2" color="#000000">
<a href="user_resultado_consulta.asp?ID=<%=ID%>" style="color: #3366CC">
Nome <% NOME=rs("NOME")%>
<% =rs("NOME")%>
</a>
</font>
</TD>

<TD bgcolor="#D3D3D3" width="499" background="img/fundo_barra.jpg" style="background-repeat: repeat-x">
<font face="Verdana" size="2" color="#000000">
<% =rs("DATA") %>
<% DATA=rs("DATA") %>
</font></TD></tr>

<tr><TD bgcolor="#F9F9F9" width="666" colspan="3" style="border-left-width: 1px; border-right-width: 1px; border-top-width: 1px">
<font face="Arial,Verdana" size="2" color="#808080"><% ASSUNTO=rs("ASSUNTO")%>
<% =ASSUNTO%>
</font></TD></tr>

<TR><TD width="666" colspan="3"> </TD></tr>
</table>

<%
rs.MoveNext()
loop

rs.Close()
set rs = nothing
Call Fechaconexao()
set conexao = nothing

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

' cria os links de paginas...
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 &"'><</a> "
Else
Response.Write "<font color='#ADADAD'><</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 & "'>></a> "
  END IF
Else
  Response.Write "<font color=""#ADADAD"">></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
  
end if
%>

Edição feita por: Renan L. Queiroz, 03/11/2009, 16:22.


#2 Baladas Mundi

Baladas Mundi

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 13/09/2009, 18:22

<%

Set rs = Server.CreateObject("ADODB.Recordset")
Const numpag=8 'quantidade por pagina
Conn.CursorLocation=3 'AdUseClient

intCurrPage=cint(Request.QueryString("CurrPage"))

if intCurrPage=0 then intCurrPage=1

'AQUI SEU SELECT ***************************************

IF rs.EOF then 
   Response.Write "<div align=""center"" class=""TextoNegritoCinzaEscuro"">NENHUMA COBERTURA CADASTRADA</span></div>"
	 else
	 	rs.PageSize=numpag
		rs.AbsolutePage=intCurrPage
end if 

a=0 
i=0
while a < numpag and not rs.EOF
a=a+1
i=i+1

' CONTEUDO ***********************************************************


Rs.MoveNext()
Wend
%>
<div style="float:left;" class="TextoPreto2"><b>Páginas:</b>
<%
for a = 1 to rs.PageCount
if a <> intCurrPage then 
Response.Write "<a class=""LinkVermelhoNegrito"" href='"&pagina&"?Currpage=" & a & "'>" & a & "</a>&nbsp;"
else
Response.Write "<span class=""TextoPreto2""><b>[&nbsp;"& a & "&nbsp;]&nbsp;</b></span>"
end if
next
%>
</div>

Use esse código, é o que vc está necessitando...

Edição feita por: DarkSign, 14/09/2009, 16:58.


#3 RF Programação

RF Programação

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 15/09/2009, 18:48

Amigo, estou usando o seu código, parece ser mais simples... mas o problema persiste, carrega a primeira página normalmente mas não carrega as páginas seguintes, ficando o resultado em branco nas demais páginas. Acredito que possa ser o meu Select com os parâmetros BETWEEN, pois testei sem e funcionou. <_<
Alguma ajuda? Preciso fazer a comparação entre datas durante a busca.
Segue o código:

<%
Set conn = CreateObject("ADODB.Connection")
abrir ="Driver={MySQL ODBC 3.51 Driver}; SERVER=xxxx; DATABASE=xxxxx; UID=xxxx; PWD=xxxx;"
conn.open abrir
%>

<%
Session.LCID = 1046
XXXPalavra = request.form("Palavra")
	  dim dteInicial	  
	  dteInicial = Request.Form("txtDataInicial")
	  dteInicial = Year(dteInicial) & "-" & Month(dteInicial) & "-" & Day(dteInicial)
	 
	  dim dteFinal	  
	  dteFinal = Request.Form("txtDataFinal")
	  dteFinal = Year(dteFinal) & "-" & Month(dteFinal) & "-" & Day(dteFinal)
%>

<%
Set rs = Server.CreateObject("ADODB.Recordset")
Const numpag=5 'quantidade por pagina
Conn.CursorLocation=3 'AdUseClient

intCurrPage=cint(Request.QueryString("CurrPage"))

if intCurrPage=0 then intCurrPage=1

'AQUI SEU SELECT ***************************************
set rs = conn.execute ("SELECT * FROM tabela WHERE NOME like '%"+XXXPalavra+"%' and DATA BETWEEN '"& dteInicial &"' and '"& dteFinal &"' ORDER BY NOME ASC")


IF rs.EOF then 
Response.Write "<div align=""center"" class=""TextoNegritoCinzaEscuro"">NENHUMA COBERTURA CADASTRADA</span></div>"
else
rs.PageSize=numpag
rs.AbsolutePage=intCurrPage
end if 

a=0 
i=0
while a < numpag and not rs.EOF
a=a+1
i=i+1
'Conteúdo************************************************************
%>
<TD bgcolor="#D3D3D3" width="370" background="img/fundo_barra.jpg" style="background-repeat:repeat-x">
<font face="Verdana" size="2" color="#000000">
<% =rs("NOME") %>
<% NOME=rs("NOME") %>
</font>
</TD>

<%
Rs.MoveNext()
Wend
%>
<div style="float:left;" class="TextoPreto2"><b>Páginas:</b>
<%
for a = 1 to rs.PageCount
if a <> intCurrPage then 
Response.Write "<a class=""LinkVermelhoNegrito"" href='"&pagina&"?Currpage=" & a & "'>" & a & "</a>&nbsp;"
else
Response.Write "<span class=""TextoPreto2""><b>[&nbsp;"& a & "&nbsp;]&nbsp;</b></span>"
end if
next
%>
</div>

E ae gente, alguém sabe pq a paginação dá problema quando uso os parâmetros BETWEEN?
O BETWEEN que uso para fazer buscas entre datas, funciona perfeitamente. :wacko:

#4 RF Programação

RF Programação

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 18/09/2009, 11:25

Consegui resolver o problema :) , mas agora tá dando um erro meio estranho:
Aparece os links (1, 2, 3, 4) e só depois que clico em um deles é que aparece o resto dos links (1, 2, 3, 4, 5, 6, 7, 8) :wacko:
Alguém já viu isso?

#5 RF Programação

RF Programação

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 26/09/2009, 14:21

Caso resolvido, pode encerrar o tópico. :lol: :lol: :lol:

#6 smartinfo

smartinfo

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Masculino
  • Localidade:Sapucaia do Sul - RS

Posted 02/06/2011, 16:10

Só faltou postar qual foi a solução encontrada ...




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq