Ir para conteúdo

POWERED BY:

Arquivado

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

tina

problema com busca

Recommended Posts

Já tive muita ajuda deste forum, aliás a paciência que voces tiveram comigo, no começo foi incrível!E o salgado é incrível, me ajudou muito!Estou com um problema que eu queria entender porque ocorre.além de resolver, é claro. Tenho consultado tudo e não acho a resposta que nem deve ser tão complicada assim. Eu paginei uma busca! Que a primeira página vem certinho mas quando eu vou prá proxima. Vem o banco inteiro. Porque acontece isso? Eu sei que estou esquecendo alguma coisa bem simples mas, não sei o que é. Alguém pode me ajudar?ObrigadaTina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderia mostrar como é sua paginação, e como você está fazendo o link para a próxima página?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí vai o código:<%procura=request.form("procura8") registros = 20pagina = Request.QueryString("pagina")If pagina = "" Thenpagina = 1End Ifprocura= request.form("procura8")Set rst = server.CreateObject("ADODB.Recordset")strSQL = "SELECT * from noticias where titulo like '%" & procura & "%' or materia like '%" & procura & "%' order by data desc"Con.CursorLocation=3 'AdUseClientrst.Open strsql, con,3,3rst.PageSize = registrosPaginaCount=Rst.PageCount %><html>......<%if rst.EOF then%> <table width="100%" mm_noconvert="TRUE"> <tr> <td align="center"><b><font face="Arial, Helvetica, sans-serif" size="1">Desculpe - nos, mas não foi encontrado nenhuma notícia com essa ocorrência.....<%rst.AbsolutePage = paginaWhile Not rst.EOF AND x < rst.PageSizex = x + 1 %>...<table width="100%" mm_noconvert="TRUE">.....<%rst.MoveNextwendanterior = pagina - 1proxima = pagina + 1ultima = rst.PageCountprimeira = 1ultm2 = FormatNumber(rst.PageCount - 1,0)If pagina <> 1 ThenResponse.Write "<b>« <a href=resulbuscateste.asp?pagina="&primeira&">Primeira Página</a></b> "End IfIf pagina > 1 AND pagina <> 2 ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina procura="&procura&">&anterior - 1&">"&anterior - 1&"</a> ]</b> "End IfIf pagina > 1 ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&anterior&">"&anterior&"</a> ]</b> "End IfResponse.Write "<b>[ "&pagina&" ]</b> "If Not rst.EOF ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&proxima&">"&proxima&"</a> ]</b> "End IfIf Not rst.EOF AND pagina <> ultima AND pagina <> ultm2 ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&proxima + 1&">"&proxima + 1&"</a> ]</b> "End IfIf Not rst.EOF ThenResponse.Write "<b><a href=resulbuscateste.asp?pagina="&ultima&">Última Página</a> »</b> "End IfEnd Ifrst.CloseSet rst = Nothing%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste com esse:

<%procura=request("procura8") 
registros = 20
pagina = Request.QueryString("pagina")
If pagina = "" Then
pagina = 1
End If
Set rst = server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * from noticias where titulo like '%" & procura & "%' or materia like '%" & procura & "%' order by data desc"
Con.CursorLocation=3 'AdUseClient
rst.Open strsql, con,3,3
rst.PageSize = registros
PaginaCount=Rst.PageCount 
%>
<html>......
<%if rst.EOF then%>
<table width="100%" mm_noconvert="TRUE">
<tr> 
<td align="center"><b><font face="Arial, Helvetica, sans-serif" size="1">Desculpe - nos, mas não foi encontrado nenhuma notícia com essa ocorrência.....
<%rst.AbsolutePage = pagina
While Not rst.EOF AND x < rst.PageSize
x = x + 1 %>...

<table width="100%" mm_noconvert="TRUE">.....
<%rst.MoveNext
wend
anterior = pagina - 1
proxima = pagina + 1
ultima = rst.PageCount
primeira = 1
ultm2 = FormatNumber(rst.PageCount - 1,0)
If pagina <> 1 Then
Response.Write "<b>« <a href=resulbuscateste.asp?pagina="&primeira&"&procura8="& procura &">Primeira Página</a></b> "
End If
If pagina > 1 AND pagina <> 2 Then
Response.Write "<b>[ <a href=resulbuscateste.asp?pagina="&anterior - 1&"&procura8="& procura &">"&anterior - 1&"</a> ]</b> "
End If
If pagina > 1 Then
Response.Write "<b>[ <a href=resulbuscateste.asp?pagina="&anterior&"&procura8="& procura &">"&anterior&"</a> ]</b> "
End If
Response.Write "<b>[ "&pagina&" ]</b> "
If Not rst.EOF Then
Response.Write "<b>[ <a href=resulbuscateste.asp?pagina="&proxima&"&procura8="& procura &">"&proxima&"</a> ]</b> "
End If
If Not rst.EOF AND pagina <> ultima AND pagina <> ultm2 Then
Response.Write "<b>[ <a href=resulbuscateste.asp?pagina="&proxima + 1&"&procura8="& procura &">"&proxima + 1&"</a> ]</b> "
End If
If Not rst.EOF Then
Response.Write "<b><a href=resulbuscateste.asp?pagina="&ultima&"&procura8="& procura &">Última Página</a> »</b> "
End If
End If
rst.Close
Set rst = Nothing
%>

Sua falha era não estar passando os dados da busca na paginação, resolvi acrescentando na QueryString uma variavel e o valor da busca!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ObrigadoMas eu usei o código e continua com o problema.No formulario de busca eu coloquei FORD então ele teria que ir até o banco e trazer 14 páginas com a palavra (tem 280 registros com a palavra). Na primeira página, vem certo. 1 de 14 mas, quando eu vou para a segunda continua vindo 2 de 323 que é todos os registros do banco: Vou colocar a pg toda pra você ver se tem mais erros:<%@ Language=VBScript %><!--#include file="adovbs.asp"--><!--#include file="canalconex.asp"--><% procura=request("procura8")registros = 20pagina = Request.QueryString("pagina")If pagina = "" Thenpagina = 1End IfSet rst = server.CreateObject("ADODB.Recordset")strSQL = "SELECT * from noticias where titulo like '%" & procura & "%' or materia like '%" & procura & "%' order by data desc"rst.Open strsql, con,3,3rst.PageSize = registrosPaginaCount=Rst.PageCount %><html><head><title>Resultado</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFFFF" leftmargin="0" topmargin="0"><table width="754" height="546" border="1" cellpadding="0" cellspacing="0" bordercolor="#CCFFFF" bgcolor="#CCFFFF"> <tr bgcolor="#CCFFFF"> <td align="left" valign="top" width="239" height="544"> <table width="84%" height="524" border="0" align="right" cellpadding="0" cellspacing="0"> <tr> <td height="523" align="left" valign="top" bgcolor="#CCFFFF"><table width="32%" height="523" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCFFFF"> <tr> <td width="470" height="544" align="left" valign="top"> <table width="110%" border="0" cellpadding="3" cellspacing="0" bordercolor="#CCFFFF" bgcolor="#FFFFFF"> <tr> <td align="left" valign="top" bgcolor="#CCFFFF"><p><font size="2" font color="blue"> <p align="left"> <font size="2"> <%if rst.EOF then%> <table width="100%" mm_noconvert="TRUE"> <tr> <td align="center"><b><font face="Arial, Helvetica, sans-serif" size="1">Desculpe - nos, mas não foi encontrado nenhuma notícia com essa ocorrência.<br> <a href="http://www.canaldotransporte.com.br/index.asp">Clique aqui para voltar.</a></font></b></td> </tr> </table> <%Else%> <tr> <td align="left" valign="middle" bgcolor="#FFFFFF"><b><spanstyle='font-size:22.0pt;'><font size="1" font="font" color="#0000CC" face="Arial, Helvetica, sans-serif">Página <%=Pagina%> de <%=PaginaCount%></font></span></b> </td> </tr><%rst.AbsolutePage = paginaWhile Not rst.EOF AND x < rst.PageSizex = x + 1 %> <table width="100%" mm_noconvert="TRUE"> <tr> <td width="9%" valign="top"><a href="http://www.canaldotransporte.com.br/detalhenoticia.asp?id=<%=rst("id")%>"><font face="Verdana" size="2"><%=rst("data")%></font></a></td> <td width="91%"><div align="left"><a href="http://www.canaldotransporte.com.br/detalhenoticia.asp?id=<%=rst("id")%>"><font face="Arial, Helvetica, sans-serif" size="2"><%=rst("titulo")%></font></a><br> </div></td> </tr><%rst.MoveNextwendanterior = pagina - 1proxima = pagina + 1ultima = rst.PageCountprimeira = 1ultm2 = FormatNumber(rst.PageCount - 1,0)If pagina <> 1 ThenResponse.Write "<b>« <a href=resulbuscateste.asp?pagina="&primeira&"&procura8="& procura &">Primeira Página</a></b> "End IfIf pagina > 1 AND pagina <> 2 ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&anterior - 1&"&procura8="& procura &">"&anterior - 1&"</a> ]</b> "End IfIf pagina > 1 ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&anterior&"&procura8="& procura &">"&anterior&"</a> ]</b> "End IfResponse.Write "<b>[ "&pagina&" ]</b> "If Not rst.EOF ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&proxima&"&procura8="& procura &">"&proxima&"</a> ]</b> "End IfIf Not rst.EOF AND pagina <> ultima AND pagina <> ultm2 ThenResponse.Write "<b>[ <a href=resulbuscateste.asp?pagina="&proxima + 1&"&procura8="& procura &">"&proxima + 1&"</a> ]</b> "End IfIf Not rst.EOF ThenResponse.Write "<b><a href=resulbuscateste.asp?pagina="&ultima&"&procura8="& procura &">Última Página</a> »</b> "End IfEnd Ifrst.CloseSet rst = Nothing%> </table> </td> </tr> </table></td> </tr></table></body></html>

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.