Ir para conteúdo

POWERED BY:

Arquivado

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

marvi

[Resolvido] Paginação em busca

Recommended Posts

Pessoal, estou tentando fazer uma paginação para resultados de um busca. A pessoa faz um busca, aparece os resultados e numa determinada quantidade de resultado aparece a paginação (próxima>>)

 

Até aí tudo bem, ele roda, mas o problema é que se a pessoa clica em "próxima>>" a página vai para a próxima só que sem buscar o assunto que a pessoa pesquisou.

 

Se pesquiso "internet" aparece uma lista de assuntos de internet e se clico em próxima>> aparece a próxima página pegando qualquer informação do banco e não mais assuntos relacionado a internet, como resolver isso??

 

Vejam o código:

 

<% 

Set rsbusca = Server.CreateObject("adodb.recordset")

varbusca=request.form("busca")

rsbusca.PageSize = 1

SQL="select * from noticias where titulo LIKE '%"&varbusca&"%' order by alteracao desc "
set rsbusca = db.execute(SQL)

%>

<%

IF rsbusca.EOF then

Response.write "<i>Não há informações. Busque de uma forma mais detalhada!</i>"

ELSE
IF Request.QueryString("pagina")="" then 
intpagina=1 
ELSE
IF cint(Request.QueryString("pagina"))<1 then
intpagina=1 
ELSE
IF cint(Request.QueryString("pagina"))> rsbusca.PageCount then 
intpagina=rsbusca.PageCount 
ELSE
intpagina=Request.QueryString("pagina")
END IF
END IF
END IF
END IF

rsbusca.AbsolutePage=intpagina

intrec=0

While intrec < rsbusca.PageSize and not rsbusca.EOF 
idnovo=rsbusca("id_noticia")

%> 

><%
IF intpagina > 1 then 
%> </font> 
<a href="busca.asp?pagina=<%=intpagina-1%>" style="text-decoration: none">
<font color="#444444"><< Anterior</font></a><font color="#444444"> |<% 
END IF

IF strcomp(intpagina,rsbusca.PageCount) <> 0 then 
%> </font> 
<a href="busca.asp?pagina=<%=intpagina + 1%>" style="text-decoration: none">

Se não tiver como resolver, alguém tem um exemplo de paginação para busca?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim

 

<% 

Set rsbusca = Server.CreateObject("adodb.recordset")

varbusca=request("busca")

rsbusca.PageSize = 1

SQL="select * from noticias where titulo LIKE '%"&varbusca&"%' order by alteracao desc "
set rsbusca = db.execute(SQL)

%>

<%

IF rsbusca.EOF then

Response.write "<i>Não há informações. Busque de uma forma mais detalhada!</i>"

ELSE
IF Request.QueryString("pagina")="" then 
intpagina=1 
ELSE
IF cint(Request.QueryString("pagina"))<1 then
intpagina=1 
ELSE
IF cint(Request.QueryString("pagina"))> rsbusca.PageCount then 
intpagina=rsbusca.PageCount 
ELSE
intpagina=Request.QueryString("pagina")
END IF
END IF
END IF
END IF

rsbusca.AbsolutePage=intpagina

intrec=0

While intrec < rsbusca.PageSize and not rsbusca.EOF 
idnovo=rsbusca("id_noticia")

%> 

><%
IF intpagina > 1 then 
%> </font> 
<a href="busca.asp?busca=<%=request("busca")%>&pagina=<%=intpagina-1%>" style="text-decoration: none">
<font color="#444444"><< Anterior</font></a><font color="#444444"> |<% 
END IF

IF strcomp(intpagina,rsbusca.PageCount) <> 0 then 
%> </font> 
<a href="busca.asp?busca=<%=request("busca")%>&pagina=<%=intpagina + 1%>" style="text-decoration: none">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Troquei

 

varbusca=request.form("busca")

para

 

varbusca=request("busca")

para conseguir recuperala por um request em querystring na url por exemplo, e coloquei no link para puchar e mandar por querystring, na outra pagina atraves do request recuperaria o valor da busca e fazia correntamente.

 

busca.asp?busca=<%=request("busca")%>&pagina=

Compartilhar este post


Link para o post
Compartilhar em outros sites

ha tá... só tinha mudado o link busca.asp?busca=...

 

Mas, mudei agora o request para varbusca=request("busca") e parece que funcionou!

 

Vou fazer alguns testes e qualquer coisa posto de novo aqui!

 

Quer dizer que usar varbusca=request("busca") ele pega tanto querystring como também o request.form? Não sabia!

 

Obrigado!

 

Marcelo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando, você sabe onde nessa programação a pessoa muda a quantidade de exibição de tópicos no busca? No momento ele exibe 10 tópicos e manda para próxima página, se eu quiser exibir 20 ou 30 topicos antes do botão "proximo" aparecer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando, você sabe onde nessa programação a pessoa muda a quantidade de exibição de tópicos no busca? No momento ele exibe 10 tópicos e manda para próxima página, se eu quiser exibir 20 ou 30 topicos antes do botão "proximo" aparecer?

 

 

Acredito que no seu código seja aqui, pois em minha páginação é onde coloquei.

 

rsbusca.PageSize = 1

Pois quando montei o meu eu coloquei

 

rsbusca.PageSize = 15

 

E assim ele lista até 15...

 

O seu você falou que é até 10... então não sei o por que do "1" ali... mas acredito que seja isso...

 

Faz o teste e me diz!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim sim, é como disse nosso amigo ali em cima, eu pensei que você queria exibir so 1 mesmo eheheh achei estranho mais achei que era por padrão 1 rsrssr.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas coloquei 30 e não mudou, continua com 10: rsbusca.PageSize = 30

 

Ha ta, resolvi, é no rsbusca.PageSize mesmo, pois o meu estava antes do SET rsbusca e assim ficava sem efeito!

Compartilhar este post


Link para o post
Compartilhar em outros sites

intpagina=Clng(Request.QueryString("pagina"))

rsbusca.PageSize = Clng(Request.QueryString("pagina"))

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.