Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Fonseca

Erro na com LIKE na paginação

Recommended Posts

Seguinte:

 

Estou com um sisteminha que usa o LIKE para comparar o q o usuário digita no campo "Busca" e ele posta através do FORM corretamente só que quando faço a paginação do resultado dos registros, o LIKE só funciona na primeira página... da segunda em diante ele simplesmente retorna os registros gerais do db sem comparar com o campo "Busca". Eu gostaria de saber como fazer para que ele continue a paginação sem deixar de comparar.

 

Segue código:

 

Página que mostra os registros (mostra_busca.asp):

<%
campo = Request.Form("Busca")
Session.LCID = 1046
Set vBusca = Server.CreateObject("ADODB.Recordset")
vBusca.CursorLocation = 3
vBusca.CursorType = 0
vBusca.LockType = 1
strSQL = "SELECT * FROM tbProdutos WHERE categoria LIKE '%" & Request.Form("Categoria") & "%' AND nome LIKE '%" & TiraAcento(Replace(campo, "'", "''")) & "%'" & "ORDER BY id DESC" 
vBusca.Open strSQL, db
'Definimos o Numero de Paginas com a propriedade "PageSize" do objeto Recordset
vBusca.PageSize = 12
'Criamos as Validações
if vBusca.eof then
   response.redirect("erro.asp?msg=Nenhum registro encontrado para o termo '"&campo&"'")
else
   'Definimos em qual pagina o visitante está
   if Request.QueryString("pagina")="" then
	  intpagina = 1
   else
	  if cint(Request.QueryString("pagina"))<1 then
intpagina = 1
	  else
if cint(Request.QueryString("pagina"))>vBusca.PageCount then  
	intpagina = vBusca.PageCount
		 else
	intpagina = Request.QueryString("pagina")
end if
	  end if   
   end if   
		end if

%>
<%
   'Iniciamos o Loop
   	i = 1
	vBusca.AbsolutePage = intpagina
	intrec = 0
	While intrec<vBusca.PageSize and not vBusca.eof  
%>
				  <td width="125" align="center" valign="top" class="texto" style="padding-bottom:15px;"><a  href="detalhes_produto.asp"><img src="<%=vBusca("fotoPQ")%>" border="0" width="101"height="92"></a><br />
							<span class="texto_noticia"><%=vBusca("nome")%></span></td>
				  <%
				  
'Define quantidade de colunas
If i = 4 Then
i = 0
Response.Write "</TR><TR>"
End If
i = i + 1
vBusca.MoveNext
intrec = intrec + 1
	if vBusca.eof then
	   response.write " "
	end if   
	Wend	

%>

				</tr>
				<tr></tr>
			</table><br><div align="center" style=" padding-right:18px; padding-bottom:10px; padding-top:5px;"><%
	'Criamos as Validações para a navegação "Anterior" e "Próximo"  
	if intpagina>1 then
%>
				<a href="mostra_busca_interna.asp?pagina=<%=intpagina-1%>" class="categorias" style="font-family:Arial, Helvetica, sans-serif;"><img src="images/left.png" border="0" width="9"height="17">  Anterior</a>
				<%
	end if
	if StrComp(intpagina,vBusca.PageCount)<>0 then  
	%>
				    <a href="mostra_busca_interna.asp?pagina=<%=intpagina + 1%>" class="categorias" style="font-family:Arial, Helvetica, sans-serif;">Próxima  <img src="images/right.png" border="0" width="9"height="17"></a>
				<%
	end if
	vBusca.close
	Set vBusca = Nothing
	%></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No link da paginação você tem que informar a variável Busca e o valor que ele recebe quando a página é executada na primeira vez.

 

Outro detalhe é que o FORM da busca tem que usar o método GET e não o método POST.

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.