Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Problemas com sistema de pesquisa em varios campos

Recommended Posts

Olá pessoal, estou fazendo um formulário de pesquiza, igual estes que tem nos sites de imobiliárias, com varios campos de filtro a pagina de teste esta no link http://www.nambeimoveis.com/imobiliaria/pesquiza.asp

 

O meu probla é o seguinte, como normal tenho duas paginas uma é com o form de pesquiza e outra com a apgina que listará todos os registros encontrados, então meu probla é o seguinte, na hora que ele traz o resultado da pesquiza ele esta trazendo valores que não foram marcados na compração, ex. coloquei que quero somente imóveis do tipo sobrado, no estado de São Paulo, com 3 dormitórios e com valor na faixa dos 100.000,00, ai na pagina de resultado ele traz varios registros que não tem nada a ver com os filtros selecionados. Vou colocar as paginas abaixo apra vocês verem onde pode estar o erro

 

 

Form de pesquiza.

 

<!--'#include file="connect.asp"--><title>NAMBEI IMÓVEIS</title><link href="estilo.css" rel="stylesheet" type="text/css"><body leftmargin="0" topmargin="0"><table width="600" border="0" align="center" cellpadding="0" cellspacing="0">  <tr>	<td>		<form action="resultado_pesquiza.asp" method="post">		<table width="600" border="0" align="center" cellpadding="0" cellspacing="5">		  <tr> 			<td class="tabelaFundoNormal">Tipo do Imóvel</td>			<td class="tabelaFundoNormal">Nº de Dormitórios</td>			<td class="tabelaFundoNormal">Estado</td>		  </tr>		  <tr> 			<td class="tabelaFundoNormal"> 			  <select name="tipo" id="tipo">				<option>Todos</option>				<option value="Apartamentos">Apartamentos</option>				<option value="Barracão">Barracão</option>				<option value="Casas">Casas</option>				<option value="Chacára">Chacára</option>				<option value="Salas Comerciais">Salas Comerciais</option>				<option value="Salões Comerciais">Salões Comerciais</option>				<option value="Sitio">Sitio</option>				<option value="Sobrados">Sobrados</option>				<option value="Terreno">Terreno</option>			  </select></td>			<td class="tabelaFundoNormal"> 			  <select name="dorm" id="dorm">				<option>Todos</option>				<option value="1">1</option>				<option value="2">2</option>				<option value="3">3</option>				<option value="4">4</option>				<option value="5">5</option>				<option value="6">6</option>				<option value="7">7</option>			  </select></td>			<td class="tabelaFundoNormal"> 			  <select name="estado" id="estado">				<option value="">Estado </option>				<option value="AC">AC </option>				<option value="AL">AL </option>				<option value="AM">AM </option>				<option value="BA">BA </option>				<option value="CE">CE </option>				<option value="DF">DF </option>				<option value="ES">ES </option>				<option value="GO">GO </option>				<option value="MA">MA </option>				<option value="MG">MG </option>				<option value="MS">MS </option>				<option value="MT">MT </option>				<option value="PA">PA </option>				<option value="PB">PB </option>				<option value="PE">PE </option>				<option value="PI">PI </option>				<option value="PR">PR </option>				<option value="RJ">RJ </option>				<option value="RN">RN </option>				<option value="RO">RO </option>				<option value="RR">RR </option>				<option value="RS">RS </option>				<option value="SC">SC </option>				<option value="SP">SP </option>				<option value="TO">TO</option>			  </select> </td>		  </tr>		  <tr> 			<td class="tabelaFundoNormal">Preço</td>			<td class="tabelaFundoNormal">Referencia (cód. do Imóvel)</td>			<td class="tabelaFundoNormal"> </td>		  </tr>		  <tr> 			<td class="tabelaFundoNormal">Qual o Valor? 			  <input name="vlr" type="text" id="vlr" size="20"> 			</td>			<td class="tabelaFundoNormal"><input name="ref" type="text" id="ref2"> 			</td>			<td class="tabelaFundoNormal">  </td>		  </tr>		  <tr> 			<td height="5"></td>			<td height="5"></td>			<td height="5"></td>		  </tr>		  <tr> 			<td colspan="3" class="tabelaFundoNormal"> 			  <div align="center"> 				<input type="submit" name="Submit" value="Buscar">			  </div></td>		  </tr>		</table>	</form>			</td>  </tr></table>
APgina que processa o form

 

<!--'#include file="connect.asp"--><title>NAMBEI IMÓVEIS</title><link href="estilo.css" rel="stylesheet" type="text/css"><body leftmargin="0" topmargin="0"><table width="600" border="0" align="center" cellpadding="0" cellspacing="5">  <tr>	<td class="tabelaFundoTitulos">Resultados da busca em imóveis para 	  locação.</td>  </tr>  <tr>	<td class="tabelaFundoTitulos"> anúncio(s) encontrado(s)</td>  </tr></table><table width="600" border="0" align="center" cellpadding="0" cellspacing="5">  <tr class="tabelaFundoNormal">	<td><div align="center"><strong>Foto</strong></div></td>	<td><div align="center"><strong>Tipo de Imóvel</strong></div></td>	<td><div align="center"><strong>Nº de Dormitórios</strong></div></td>	<td><div align="center"><strong>Estado</strong></div></td>	<td><div align="center"><strong>Cidade</strong></div></td>	<td><div align="center"><strong>Preço</strong></div></td>	<td><div align="center"><strong>Ref.</strong></div></td>  </tr>  <tr class="tabelaFundoNormal">	<td></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>  </tr>  <%tipo = request.Form("tipo")dorm = request.Form("dorm")uf = request.Form("estado")valor = request.Form("vlr")refe = request.Form("ref")	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	'sql = "SELECT * FROM produtos WHERE ( nome LIKE '%"&preparaPalavra(palavra(0))&"%' OR detalhe LIKE '%"&preparaPalavra(palavra(0))&"%' OR fabricante LIKE '%"&preparaPalavra(palavra(0))&"%') "&tipos&" ORDER by nome"	rs.Open = "SELECT * FROM cadImovel where imovelTipo like '%"&tipo&"%' or nDormitorios like '%"&dorm&"%' or estado like '%"&uf&"%' or preco1 like '%"&valor&"%' or preco2 like '%"&valor&"%' or preco3 like '%"&valor&"%' or preco4 like '%"&valor&"%' or preco5 like '%"&valor&"%' or preco6 like '%"&valor&"%' or preco7 like '%"&valor&"%' or ref ='"&refe&"';"	DO While Not rs.EOF		tipoM = rs("imovelTipo")	dormitorios = rs("nDormitorios")	estado = rs("estado")	cidade = rs("cidade")	preco1 = rs("preco1")	preco2 = rs("preco2")	preco3 = rs("preco3")	preco4 = rs("preco4")	preco5 = rs("preco5")	preco6 = rs("preco6")	preco7 = rs("preco7")	ref = rs("ref")	foto = rs("foto")		If cor="#EEF0F1" then	cor="#cccccc"Else	cor="#EEF0F1"End If%>  <tr class="textoNormal" bgcolor="<%=cor%>" onMouseOver="this.style.backgroundColor='<%=cor_linha_selecionada%>';" onMouseOut="this.style.backgroundColor='';">	<td><div align="center"%>	<%If foto <>"0" then%>	<img src="imagens/foto.gif"></div>	<%end if%>	</td>	<td><%=tipoM%></td>	<td><div align="center"><%=dormitorios%></div></td>	<td><div align="center"><%=estado%></div></td>	<td><%=cidade%></td>	<td>	<%if preco1 > "0" then%>	<%=preco1%>	<%else if preco2 > "0" then%>	<%=preco2%>	<%else if preco3 > "0" then%>	<%=preco3%>	<%else if preco4 > "0" then%>	<%=preco4%>	<%else if preco5 > "0" then%>	<%=preco5%>	<%else if preco6 > "0" then%>	<%=preco6%>	<%else if preco7 > "0" then%>	<%=preco7%>	<%end if	  end if	  end if	  end if	  end if	  end if	  end if	%>	</td>	<td><%=ref%></td>	<%rs.MoveNextLoop%>  </tr></table><table width="600" border="0" align="center" cellpadding="0" cellspacing="5">  <tr>	<td height="5"> </td>  </tr>  <tr>	<td><div align="right">		<p class="tabelaFundoNormal"><em>Paginas</em></p>	  </div></td>  </tr></table>
Inclusive no campo de valor eu gostaria de poder usar um combo do tipo

 

Até R$ 100,00

R$ 100,00 à R$ 200,00

R$ 200,00 à R$ 250,00

R$ 250,00 à R$ 300,00

R$ 300,00 à R$ 350,00

R$ 350,00 à R$ 500,00

R$ 500,00 à R$ 700,00

R$ 700,00 à R$ 1000,00

Acima de R$ 1000,00

Todos

 

mas não tenho nem idéia de como fazer um select para pegar os valore, sei que da para usar o BETWEEN para autenar entre valores, mas o problema é que no banco de dados existem 7 colunas na tabela de cadastro do imóvel para preços diferentes, ou seja, caso o imóvel tenha 1 quanrto é um preço, para 2 quanrtos, outro preço e assim por diante, como fazer um select entre valores, mas com preços que podem estar em tabelas colunas diferentes ?

 

Obse.: ja auterei no selec de OR para AND para ver se dava certo mas a principio ao menos da forma que eu coloquei não deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal mudei o código da pagina que processa o form para ver dava cert mas nada ainda, algume...

 

 

<!--'#include file="connect.asp"--><title>NAMBEI IMÓVEIS</title><link href="estilo.css" rel="stylesheet" type="text/css"><body leftmargin="0" topmargin="0"><table width="600" border="0" align="center" cellpadding="0" cellspacing="5">  <tr>	<td class="tabelaFundoTitulos">Resultados da busca em imóveis para 	  locação.</td>  </tr>  <tr>	<td class="tabelaFundoTitulos"> anúncio(s) encontrado(s)</td>  </tr></table><table width="600" border="0" align="center" cellpadding="0" cellspacing="5">  <tr class="tabelaFundoNormal">	<td><div align="center"><strong>Foto</strong></div></td>	<td><div align="center"><strong>Tipo de Imóvel</strong></div></td>	<td><div align="center"><strong>Nº de Dormitórios</strong></div></td>	<td><div align="center"><strong>Estado</strong></div></td>	<td><div align="center"><strong>Cidade</strong></div></td>	<td><div align="center"><strong>Preço</strong></div></td>	<td><div align="center"><strong>Ref.</strong></div></td>  </tr>  <tr class="tabelaFundoNormal">	<td></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>	<td height="5"></td>  </tr>  <%tipo = request.Form("tipo")dorm = request.Form("dorm")uf = request.Form("estado")valorI = request.Form("vlrI")valorF = request.Form("vlrF")refe = request.Form("ref")	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	'sql = "SELECT * FROM produtos WHERE ( nome LIKE '%"&preparaPalavra(palavra(0))&"%' OR detalhe LIKE '%"&preparaPalavra(palavra(0))&"%' OR fabricante LIKE '%"&preparaPalavra(palavra(0))&"%') "&tipos&" ORDER by nome"	rs.Open = "SELECT * FROM cadImovel where imovelTipo like '%"&tipo&"%' or nDormitorios like '%"&dorm&"%' or estado like '%"&uf&"%' or ref ='"&refe&"' or preco between '"&valorI&"' and '"&valorF&"';"	DO While Not rs.EOF		tipoM = rs("imovelTipo")	dormitorios = rs("nDormitorios")	estado = rs("estado")	cidade = rs("cidade")	preco = rs("preco")	ref = rs("ref")	foto = rs("foto")		If cor="#EEF0F1" then	cor="#cccccc"Else	cor="#EEF0F1"End If%>  <tr class="textoNormal" bgcolor="<%=cor%>" onMouseOver="this.style.backgroundColor='<%=cor_linha_selecionada%>';" onMouseOut="this.style.backgroundColor='';">	<td><div align="center"%>	<%If foto <>"0" then%>	<img src="imagens/foto.gif"></div>	<%end if%>	</td>	<td><%=tipoM%></td>	<td><div align="center"><%=dormitorios%></div></td>	<td><div align="center"><%=estado%></div></td>	<td><%=cidade%></td>	<td><%=preco%></td>	<td><%=ref%></td>	<%rs.MoveNextLoop%>  </tr></table><table width="600" border="0" align="center" cellpadding="0" cellspacing="5">  <tr>	<td height="5"> </td>  </tr>  <tr>	<td><div align="right">		<p class="tabelaFundoNormal"><em>Paginas</em></p>	  </div></td>  </tr></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então pessoal, bati um pouco a cabeça, mas cheguei a um resultado bem próximo,a cho que ja estou quase lá, agora só preciso de uma ajuda para ver como pesquizar campos com numeros ou valores, ex. tenho 2 campos para comprarar preços, do ito valor entre 50000 e 100000, ou seja ele deveria pesquizar imóveis que esteja dentro deste valor, porem ele traz qualquer valor que contenha os numeros do campo, iclusive pelo que notei se eu colocar de 5 a 15 ele faz a mesma pesquiza.

 

Link de teste http://www.nambeimoveis.com/imobiliaria/pesquiza.asp

 

Aceito dicas para melhorar

 

No BD o campo preço tentei de 2 forma como Unidade Monetaria e c agora estou usando tipo texto

 

os codigos

 

primeiro select, caso não seja preenchido nehum campo do form

 

<%tipo = request.Form("tipo")dorm = request.Form("dorm")uf = request.Form("estado")valorI = request.Form("vlrI")valorF = request.Form("vlrF")refe = request.Form("ref")if tipo = "todos" and dorm = "todos" and uf = "todos" and valorI = "" and valorF = "" and refe = "" then  regs = 15 'Aqui setamos quantos registros serão listados por páginapag = request.querystring("pagina")if pag = "" Then   pag = 1end if	Set ct = server.CreateObject("ADODB.Recordset")	ct.ActiveConnection = conn	ct.OPEN = "SELECT count(ref) as total FROM cadImovel"		totalreg1 = ct("total")ct.closeset ct = nothing%>inicio a tabela de resultado<%	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open = "SELECT * FROM cadImovel"		rs.pagesize = regsif rs.eof or rs.bof then   response.write "Refaça sua pesquisa, nenhum registro encontrado"else   rs.absolutepage = pag   contador = 0   do while not rs.eof and contador < rs.pagesize		tipoM1 = rs("imovelTipo")	dormitorios1 = rs("nDormitorios")	estado1 = rs("estado")	cidade1 = rs("cidade")	preco1 = formatcurrency (rs("preco"),2)	ref1 = rs("ref")	foto1 = rs("foto")		If cor="#EEF0F1" then	cor="#cccccc"Else	cor="#EEF0F1"End If%>

Select caso seja preenchido algum campo do form

 

<%else  regs = 15 'Aqui setamos quantos registros serão listados por páginapag = request.querystring("pagina")if pag = "" Then   pag = 1end if  	Set rs = server.CreateObject("ADODB.Recordset")	rs.ActiveConnection = conn	rs.Open = "SELECT * FROM cadImovel where imovelTipo = '"&tipo&"' or nDormitorios = '"&dorm&"' or estado = '"&uf&"' or ref ='"&refe&"' or preco between '"&valorI&"' and '"&valorF&"';"	Set ct = server.CreateObject("ADODB.Recordset")	ct.ActiveConnection = conn	ct.OPEN = "SELECT count(ref) as total FROM cadImovel where imovelTipo = '"&tipo&"' or nDormitorios = '"&dorm&"' or estado = '"&uf&"' or ref ='"&refe&"' and preco between '"&valorI&"' and '"&valorF&"';"	'ct.OPEN = "select count(ref) as total from cadImovel where ref="&ref	totalreg = ct("total")ct.closeset ct = nothing%>inicio  a tabela de resultado <%		rs.pagesize = regsif rs.eof or rs.bof then   response.write "Refaça sua pesquisa, nenhum registro encontrado"else   rs.absolutepage = pag   contador = 0   do while not rs.eof and contador < rs.pagesize		tipoM = rs("imovelTipo")	dormitorios = rs("nDormitorios")	estado = rs("estado")	cidade = rs("cidade")	preco = formatcurrency (rs("preco"),2)	ref = rs("ref")	foto = rs("foto")		If cor="#EEF0F1" then	cor="#cccccc"Else	cor="#EEF0F1"End If%>

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.