Ir para conteúdo

POWERED BY:

Arquivado

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

marcelocardoso

Busca ERRADA...

Recommended Posts

AMIGOS!

 

Estou tentando montar esta busca, mas não estou tendo exito na sua formatação e funcionamento, ok:

 

1) Basicamente tenho no topo da página um FORM com os campos:

INPUT TYPE: chamado de: Palavra_da_busca

SELECT LIST: chamado de: palavra_de_criterio com as opções de: Produto, Fabricante, Categoria

INPUT BUTTON: Submeter

 

Bom!

Ao usar o Form acima, ele deveria funcior; mas não é oque está acontecendo.

Pois acho que devo estar errando na formatação dos IF's, (mas foi até aonde que consegui fazer).... ok

 

Segue abaixo meu código no qual é submetido a busca do form que estou fazendo:

<table width="722"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">  <tr>	<td width="784">	</td>  </tr>  <tr> 	<td><table width="100%"  border="0" align="center" cellpadding="0" cellspacing="4">		<tr> 		  <td width="25%"></td>		  <td width="75%"></td>		</tr>		<tr> 		  <td valign="top"> 		  </td>		  <td><%'Resgatamos o valor enviado da busca' BuscaPalavra = Request.QueryString("palavra_da_busca")' BuscaOpcao = Request.QueryString("palavra_de_criterio")'############## CRITÉRIOS DE BUSCA DE PRODUTOS  #################'Fazer busca pelo nome do produto' IF BuscaOpcao = "Produto" Then'	SQL = "SELECT ID * FROM WHERE ProdutosNome LIKE '%" & BuscaPalavra & "%' ORDER BY ID"'	End IF	  'Fazer busca pelo fabricante do produto		  ' IF BuscaOpcao = "Fabricante" Then'	SQL = "SELECT ID * FROM Produtos WHERE ProdutosFabricante LIKE '%" & BuscaPalavra & "%' ORDER BY ID"'	End IF'Fazer busca pela categoria de cada produto		  ' IF BuscaOpcao = "Categoria" Then'	SQL = "SELECT ID * FROM Produtos WHERE ProdutosCategoria LIKE '%" & BuscaPalavra & "%' ORDER BY ID"'	End IF	   %><%'############## CONFIGURAÇÃO DA PAGINAÇÃO  ################# PagAtual = Request.QueryString("PagAtual") 'página atual MaximoPorPagina = 12  SQL = "SELECT * FROM Produtos WHERE ProdutosOpcao = TRUE" SET RSProdutos = Server.CreateObject("ADODB.Recordset")   	 RSProdutos.CursorType = 3	 RSProdutos.CacheSize = MaximoPorPagina	 RSProdutos.PageSize = MaximoPorPagina	 RSProdutos.Open SQL, ObjCX'############## COMEÇO DA PAGINAÇÃO  #################'Verifica qual a página solicitada IF Request.QueryString("PagAtual") = "" THEN	PagAtual = 1 'Primeira página		ELSE	PagAtual = Request.QueryString("PagAtual") END IF'Move o RecorSet para o início RSProdutos.MoveFirst				 'Pega o número total de páginas TotalPages = RSProdutos.PageCount'Configura a página atual RSProdutos.AbsolutePage = PagAtual     '############## FINAL DA PAGINAÇÃO ################# IF RSProdutos.EOF THEN%><table width="100%" border="0" align="center" cellpadding="4" cellspacing="4">			  <tr> 				<td><div align="center"><strong><font color="#FF6633">Não 					há registros!</font></strong></div></td>			  </tr>			</table><% ELSE%>			<TABLE width="100%" align="center" cellPadding=2 cellSpacing=3>			  <TBODY>				<TR><% FOR i = 1 TO MaximoPorPagina%> 				  <TD vAlign=top><TABLE width="100%" cellPadding=0 cellSpacing=0 class=PRODBORDA>					  <TBODY>						<TR>						  <TD align=middle width=110><div align="center"><strong><font face="Arial" size="1"><a href="detalhes.asp?cod=<%=RSProdutos("ID")%>" target="_parent"><img src="<%=RSProdutos("Imagem")%>" alt="Detalhes do produto" width="100" height="100" border="0" align="absmiddle"></a></font></strong></div></TD>						  <TD vAlign=top> 							<TABLE width="100%" height="49" cellPadding=0 cellSpacing=0>							  <TBODY>								<TR> 								  <TD width=2% bgColor=#ea8234 height=40></TD>								  <TD class=PRODTITULO width=98%><strong><%=RSProdutos("ProdutosSigla")%></strong><br>									<%=RSProdutos("ProdutosNome")%></TD>								</TR>							  </TBODY>							</TABLE>							<table width="100%" border="0" cellspacing="0" cellpadding="0">							  <tr> 								<td width="86%"> <TABLE width="100%" cellPadding=0 cellSpacing=0>									<TBODY>									  <TR> 										<TD width="100%" height=65 colSpan=2 class=PRODDESCRICAO><div align="justify">										  <%=Response.Write(LEFT(RSProdutos("ProdutosDescricao"),200) & "...")%></div></TD>									  </TR>									  <TR> 										<TD class=PRODALIGNTEXT colSpan=2><SPAN class=pp></SPAN></TD>									  </TR>									</TBODY>								  </TABLE></td>								<td width="14%"><table width="85%" border="0" align="center" cellpadding="2" cellspacing="4">									<tr> 									  <td><div align="center"><a 								href="detalhes.asp?cod=<%=RSProdutos("ID")%>" target="_parent"><img 								src="diretorio_img/imagem_marcador_-_detalhes.gif" alt="Detalhes do produto" width=32 height=26 								border=0></a></div></td>									</tr>									<tr> 									  <td><div align="center"><a 								href="sacola.asp?cod=<%=RSProdutos("ID")%>" target="_parent"><img 								src="diretorio_img/imagem_marcador_-_carrinho.gif" alt="Colocar no carrinho" width=31 height=25 								border=0></a></div></td>									</tr>								  </table></td>							  </tr>							</table></TD>						</TR>					  </TBODY>					</TABLE></TD>				</TR>			  </TBODY><%'Movemos o ponteiro do RecordSet para o próximo Registro	RSProdutos.MoveNext IF RSProdutos.EOF THEN	EXIT FOR	END IF	NEXT%>			</TABLE>			<br>			<table width="98%" border="0" align="center" cellpadding="2" cellspacing="4">			  <tr>				<td> 				  <div align="right"><%'############## PAGINAÇÃO 3 ####################'Coloca o Nº página atual / Nº Total de páginas Response.Write("Página " & PagAtual & " de " & TotalPages & "")   'Mostra os botões: Anterior e Próximo, utilizando da opção de IF '----------- Numeros - Calculos -------------------------------- IF TotalPages > 1 THEN%>				  </div></td>			  </tr>			</table>			<br> <br>			<table width="100%" align="center">			  <tr> 				<td align="center"> 				  <%IF Cint(PagAtual) > 1 THEN%>				  <a href="produtos.asp?PagAtual=<%=PagAtual-1%>" target="_parent"><img src="diretorio_img/imagem_marcador_-_retornar.gif" width="20" height="16" border="0" align="absmiddle"></a> 				     				  <% ELSE%>				  <img src="diretorio_img/imagem_marcador_-_retornar.gif" width="20" height="16" align="absmiddle">   				  <%END IF  FOR t=1 TO TotalPages	IF CInt(t) = CInt(PagAtual) THEN %>				  <b><%=t%></b> 				  <%ELSE%>				  <a href="produtos.asp?PagAtual=<%=t%>"><%=t%></a> 				  <% END IF  	IF Cint(t) < TotalPages THEN%>				  <%END IFNEXT	 IF Cint(PagAtual) < TotalPages THEN%>				     <a href="produtos.asp?PagAtual=<%=PagAtual+1%>" target="_parent"><img src="diretorio_img/imagem_marcador_-_avancar.gif" width="20" height="16" border="0" align="absmiddle"></a> 				     				  <%ELSE%>				     <img src="diretorio_img/imagem_marcador_-_avancar.gif" width="20" height="16" align="absmiddle"> 				  <% END IFRSProdutos.Close%>				</td>			  </tr>			</table><%END IFEND IFSET RSProdutos = NOTHING%></tr>	  </table> </td>		</tr>	  </table> <TBODY>	<TR> 	<TD></BODY></HTML>
Se puderem me ajudar!

E além daqueles casos do IF acima para buscar, gostaria também que se o cara somente clicasse no botão da busca, e não digitasse nenhuma palavra e não escolhesse nenhum criterio também para a busca, GOSTARIA que a instrução SQL me montasse todos os produtos do BD, ok?????

 

 

Podem me ajudar a arrumar estes IF para funcionar.... pois só falta isso.

Obrigado a todos os amigos e colegas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

COLEGAS E SALOERIC!

 

Fiz oque você me passou, e agora estou com o código assim:

<table width="722"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">  <tr><td width="784"></td>  </tr>  <tr> <td><table width="100%"  border="0" align="center" cellpadding="0" cellspacing="4">		<tr> 		  <td width="25%"></td>		  <td width="75%"></td>		</tr>		<tr> 		  <td valign="top"> 		  </td>		  <td><%'Resgatamos o valor enviado da busca BuscaPalavra = Request("palavra_da_busca") BuscaOpcao = Request("palavra_de_criterio")'############## CRITÉRIOS DE BUSCA DE PRODUTOS  #################'Fazer busca pelo nome do produto IF BuscaOpcao = "Produto" Then	SQL = "SELECT * FROM Produtos WHERE ProdutosNome LIKE '%" & BuscaPalavra & "%' ORDER BY ID"	End IF	  'Fazer busca pelo fabricante do produto		   IF BuscaOpcao = "Fabricante" Then	SQL = "SELECT * FROM Produtos WHERE ProdutosFabricante LIKE '%" & BuscaPalavra & "%' ORDER BY ID"	End IF'Fazer busca pela categoria de cada produto		   IF BuscaOpcao = "Categoria" Then	SQL = "SELECT * FROM Produtos WHERE ProdutosCategoria LIKE '%" & BuscaPalavra & "%' ORDER BY ID"	End IF	   %><%'############## CONFIGURAÇÃO DA PAGINAÇÃO  ################# PagAtual = Request.QueryString("PagAtual") 'página atual MaximoPorPagina = 12 SET RSProdutos = Server.CreateObject("ADODB.Recordset")   	 RSProdutos.CursorType = 3	 RSProdutos.CacheSize = MaximoPorPagina	 RSProdutos.PageSize = MaximoPorPagina	 RSProdutos.Open SQL, ObjCX'############## COMEÇO DA PAGINAÇÃO  #################'Verifica qual a página solicitada IF Request.QueryString("PagAtual") = "" THEN	PagAtual = 1 'Primeira página		ELSE	PagAtual = Request.QueryString("PagAtual") END IF'Move o RecorSet para o início RSProdutos.MoveFirst				 'Pega o número total de páginas TotalPages = RSProdutos.PageCount'Configura a página atual RSProdutos.AbsolutePage = PagAtual     '############## FINAL DA PAGINAÇÃO ################# IF RSProdutos.EOF THEN%><table width="100%" border="0" align="center" cellpadding="4" cellspacing="4"><tr> <td><div align="center"><strong><font color="#FF6633">Não há registros!</font></strong></div></td></tr></table><% ELSE%><TABLE width="100%" align="center" cellPadding=2 cellSpacing=3><TBODY><TR><% FOR i = 1 TO MaximoPorPagina'Verificaremos se a imagem existe ou não, para vermos qual imagem apresentaremos na tela IF IsEmpty(RSProdutos("ProdutosImagemNormal")) OR IsNull(RSProdutos("ProdutosImagemNormal")) Then	  ImagemTratada = "imagem_semproduto.jpg"	  ELSE	  ImagemTratada = RSProdutos("ProdutosImagemNormal") END IF%> <TD vAlign=top><TABLE width="100%" cellPadding=0 cellSpacing=0 class=PRODBORDA><TBODY><TR><TD align=middle width=110><div align="center"><strong><font face="Arial" size="1"><a href="detalhes.asp?codproduto=<%=RSProdutos("ID")%>" target="_parent"><img src="<%= ImagemTratada %>" alt="Detalhes do produto" width="100" height="100" border="0" align="absmiddle"></a></font></strong></div></TD><TD vAlign=top> <TABLE width="100%" height="49" cellPadding=0 cellSpacing=0><TBODY><TR> <TD width=2% bgColor=#ea8234 height=40></TD><TD class=PRODTITULO width=98%><strong><%=RSProdutos("ProdutosSigla")%></strong><br><%=RSProdutos("ProdutosNome")%></TD></TR></TBODY></TABLE><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr> <td width="86%"> <TABLE width="100%" cellPadding=0 cellSpacing=0><TBODY><TR> <TD width="100%" height=65 colSpan=2 class=PRODDESCRICAO><div align="justify"><%=Response.Write(LEFT(RSProdutos("ProdutosDescricao"),200) & "...")%></div></TD></TR><TR> <TD class=PRODALIGNTEXT colSpan=2><SPAN class=pp></SPAN></TD></TR></TBODY></TABLE></td><td width="14%"><table width="85%" border="0" align="center" cellpadding="2" cellspacing="4"><tr>   <td><div align="center"><a href="detalhes.asp?codproduto=<%=RSProdutos("ID")%>" target="_parent"><img src="diretorio_img/imagem_marcador_-_detalhes.gif" alt="Detalhes do produto" width=32 height=26 border=0></a></div></td></tr><tr>   <td><div align="center"><a href="sacola.asp?codproduto=<%=RSProdutos("ID")%>" target="_parent"><img src="diretorio_img/imagem_marcador_-_carrinho.gif" alt="Colocar no carrinho" width=31 height=25 border=0></a></div></td></tr></table></td></tr></table></TD>		</TR>	</TBODY>	</TABLE></TD></TR></TBODY><%'Movemos o ponteiro do RecordSet para o próximo Registro	RSProdutos.MoveNext IF RSProdutos.EOF THEN	EXIT FOR	END IF	NEXT%>			</TABLE>			<br>	<table width="98%" border="0" align="center" cellpadding="2" cellspacing="4">	<tr>	<td> <div align="right"><%'############## PAGINAÇÃO 3 ####################'Coloca o Nº página atual / Nº Total de páginas Response.Write("Página " & PagAtual & " de " & TotalPages & "")   'Mostra os botões: Anterior e Próximo, utilizando da opção de IF '----------- Numeros - Calculos -------------------------------- IF TotalPages > 1 THEN%>		</div></td>			  </tr>			</table>			<br> <br>			<table width="100%" align="center">			  <tr> 				<td align="center"> 				  <%IF Cint(PagAtual) > 1 THEN%><a href="produtos.asp?PagAtual=<%=PagAtual-1%>" target="_parent"><img src="diretorio_img/imagem_marcador_-_retornar.gif" width="20" height="16" border="0" align="absmiddle"></a>    <% ELSE%><img src="diretorio_img/imagem_marcador_-_retornar.gif" width="20" height="16" align="absmiddle">   <%END IF  FOR t=1 TO TotalPages	IF CInt(t) = CInt(PagAtual) THEN %><b><%=t%></b> <%ELSE%><a href="page_produtos.asp?PagAtual=<%=t%>"><%=t%></a> <% END IF  	IF Cint(t) < TotalPages THEN%><%END IFNEXT	 IF Cint(PagAtual) < TotalPages THEN%>   <a href="produtos.asp?PagAtual=<%=PagAtual+1%>" target="_parent"><img src="diretorio_img/imagem_marcador_-_avancar.gif" width="20" height="16" border="0" align="absmiddle"></a>    <%ELSE%>   <img src="diretorio_img/imagem_marcador_-_avancar.gif" width="20" height="16" align="absmiddle"> <% END IFRSProdutos.Close%></td></tr></table><%END IFEND IFSET RSProdutos = NOTHING%></tr>	  </table> </td>		</tr>	  </table> <TBODY>	<TR> 	<TD></BODY></HTML>
Só que agora me dá este erro:

ADODB.Recordset error '800a0bcd'

BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

wwwroot/teste/produtos.asp, line 66

JUSTO NESTA LINHA ABAIXO:

'Move o RecorSet para o início

RSProdutos.MoveFirst

Como posso resolver esta busca com este problema no código????

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta instrução esta dentro de uma laço de repetição???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Conseguem me ajudar, Adriano e Mário?

Estou confiando tudo em vocês, pois não estou sabendo fazer esta busca funcional realemente...

 

 

Obrigado desde já pelas a ajuda de vocês,

Fico no aguardo do retorno dos colegas. ok

 

Um Abraço....

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.