Ir para conteúdo

POWERED BY:

Arquivado

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

Boris

Busca consiliada

Recommended Posts

Galera, estou com um problema, não consigo fazer uma busca consiliada.

 

Tenho varios campos que tem que ser combinadas ou não...

 

Imagem Postada

 

esotu colocando meu codigo logo abaixo, eu cheguei a procuar no site mas não encontrei.

 

E até então a busca so é realizada se eu colocar todos os dados se eu deixar de colocar um deles ele não encontra.

 

e o que eu preciso é se não colocar um dos campos ele ignora esse campos e tras todos desse campo.

 

index.html

ASP
<html>

<head>

<title>Moradia Imobiliária</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<style type="text/css">

<!--

.style1 {

        font-family: arial;

        color: #FFFFFF;

        font-weight: bold;

        font-size: 10px;

}

.cx {

        font-family: verdana;

        font-size: 10px;

        color: #333333;

        text-decoration: none;

}

.textobr {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #FFFFFF; text-decoration: none}

 

-->

</style>

<script type="text/JavaScript">

<!--

function MM_jumpMenu(targ,selObj,restore){ //v3.0

  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");

  if (restore) selObj.selectedIndex=0;

}

//-->

</script>

</head>

 

<body bgcolor="#0000CC" text="#000000" topmargin="52">

 

<form name="form1" action="seg_asp/buscar.asp">

<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

  <tr>

    <td><img src="seg_asp/Imagens/topo.gif" width="700" height="87"></td>

  </tr>

  <tr>

    <td height="10" align="center" valign="middle">

      <table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

        <tr>

          <td width="291" background="seg_asp/Imagens/line_fundo.jpg"><div align="right">

            <table width="100%" border="0" cellspacing="0" cellpadding="0">

              <tr>

                <td width="61%"><div align="right"><span class="style1">Tipo</span>

                        <select name="busca_tipo" size="1" class="cx" id="busca_tipo">

                          <option>Imóvel</option>

                          <option value="Apartamento">Apartamento</option>

                          <option value="Casa">Casa</option>

                          <option value="Sobrado">Sobrado</option>

                          <option value="Terreno">Terreno</option>

                        </select>

                </div></td>

                <td width="39%"><div align="right">

                    <select name="busca_venda" size="1" class="cx" id="busca_venda">

                      <option>Selecione</option>

                      <option value="Aluguel">Aluguel</option>

                      <option value="Venda">Venda</option>

                    </select>

                </div></td>

              </tr>

            </table>

          </div></td>

          <td width="129" background="seg_asp/Imagens/line_fundo.jpg"><div align="center"><span class="style1">Ref. </span>

              <input name="busca" type="text" class="cx" id="busca" size="10">

          </div></td>

          <td width="203" background="seg_asp/Imagens/line_fundo.jpg">

           

              <div align="center">

                <select name="busca__valor" size="1" class="cx" id="busca__valor">

                  <option>Selecione</option>

                  <option>De 100,00  até 500,00</option>

                  <option>De 501,00  até 1000,00</option>

                  <option>De 1001,00 até 1500,00</option>

                  <option>Até 120.000,00</option>

                  <option>Até 180.000,00</option>

                  <option>Até 240.000,00</option>

                  <option>Até 300.000,00</option>

                  <option>Até 360.000,00</option>

                  <option>Indiferente</option>

                </select>

            </div></td><td width="77" height="36" background="seg_asp/Imagens/line_fundo.jpg"><input type="submit" name="Submit" value="Buscar" class="cx"></td>

        </tr>

        <tr>

          <td height="36" colspan="4" valign="top"><table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

            <tr>

              <td height="300" valign="top" bgcolor="#FFFFFF">

             </td>

            </tr>

          </table></td>

          </tr>

        <tr>

          <td height="19" colspan="4" valign="top"><table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

            <tr>

              <td bgcolor="#0059B3"> </td>

            </tr>

          </table></td>

        </tr>

      </table>

  </td>

  </tr>

 </table>

 </form>

</body>

</html>

buscar.asp

ASP
<% @Language = VBScript %><%session.LCID=1046%>

<%

 

busca_tipo = Request.QueryString("busca_tipo")

busca_venda = Request.QueryString("busca_venda")

strBusca = Request.QueryString("busca")

valor = Request.QueryString("valor")

 

 

%>

<style type="text/css">

<!--

.cx {        font-family: verdana;

        font-size: 10px;

        color: #333333;

        text-decoration: none;

}

.style1 {        font-family: arial;

        color: #FFFFFF;

        font-weight: bold;

        font-size: 10px;

}

.style7 {color: #FFFFFF; font-weight: bold; font-size: 10px; }

.style8 {font-family: Verdana, Arial, Helvetica, sans-serif; color: #FFFFFF; text-decoration: none;}

.texto {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; color: #666666; text-decoration: none}

.texto8bold {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #3F68AD; text-decoration: none}

.texto8boldred {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #FF0000; text-decoration: none }

.style10 {

        font-family: verdana;

        font-weight: bold;

        font-size: 10px;

}

.style11 {

        font-size: 12px;

        color: #666666;

}

.style12 {font-size: 11px}

.style14 {color: #FFFFFF; font-weight: bold; font-size: 11px; }

.textobr {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 8pt; font-weight: bold; color: #FFFFFF; text-decoration: none}

.style16 {

        font-size: 12pt;

        font-weight: bold;

        color: #666666;

}

-->

</style>

<body bgcolor="#0000CC" text="#000000" topmargin="52">

<form name="form1" action="buscar.asp">

<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

  <tr>

    <td><img src="Imagens/topo.gif" width="700" height="87" /></td>

  </tr>

  <tr>

    <td height="10" align="center" valign="middle">

      <table width="700" border="0" align="center" cellpadding="0" cellspacing="0">

        <tr>

          <td width="291" background="Imagens/line_fundo.jpg"><div align="right">

            <table width="100%" border="0" cellspacing="0" cellpadding="0">

              <tr>

                <td width="61%"><div align="right"><span class="style1">Tipo</span>

                        <select name="busca_tipo" size="1" class="cx" id="busca_tipo">

                          <option>Imóvel</option>

                          <option value="Apartamento">Apartamento</option>

                          <option value="Casa">Casa</option>

                          <option value="Sobrado">Sobrado</option>

                          <option value="Terreno">Terreno</option>

                        </select>

                </div></td>

                <td width="39%"><div align="right">

                    <select name="busca_venda" size="1" class="cx" id="busca_venda">

                      <option>Selecione</option>

                      <option value="Aluguel">Aluguel</option>

                      <option value="Venda">Venda</option>

                    </select>

                </div></td>

              </tr>

            </table>

          </div>

            <div align="right"></div></td>

          <td width="129" height="36" background="Imagens/line_fundo.jpg"><label></label>

                <label></label>

              <div align="center"><span class="style1">Ref. </span>

                <input name="busca" type="text" class="cx" id="busca" size="10">

</div></td>

          <td width="203" background="Imagens/line_fundo.jpg"><div align="center">

            <select name="valor" size="1" class="cx" id="valor">

              <option>Selecione</option>

              <option>De 100,00  até 500,00</option>

              <option>De 501,00  até 1000,00</option>

              <option>De 1001,00 até 1500,00</option>

              <option>Até 120.000,00</option>

              <option>Até 180.000,00</option>

              <option>Até 240.000,00</option>

              <option>Até 300.000,00</option>

              <option>Até 360.000,00</option>

              <option>Indiferente</option>

            </select>

          </div></td>

          <td width="77" background="Imagens/line_fundo.jpg"><input type="submit" name="Submit" value="Buscar" class="cx"></td>

        </tr>

        <tr>

          <td height="36" colspan="4"><table width="700" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">

            <tr>

              <td height="39" valign="top"><table width="680" border="0" align="center" cellpadding="0" cellspacing="0">

                <tr>

                  <td>

                                  <%

if busca_tipo <> "" then

        stringConexao = "Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & Server.MapPath("../bd/bd.mdb")

        Set RsConexao = Server.CreateObject("ADODB.Connection")

        RsConexao.Open stringConexao

        strSQL = "SELECT * FROM imovel WHERE referencia LIKE '%"& strBusca &"%'"

       

        else   

 

                if busca_venda <> "" then

                        stringConexao = "Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & Server.MapPath("../bd/bd.mdb")

                        Set RsConexao = Server.CreateObject("ADODB.Connection")

                        RsConexao.Open stringConexao

                        strSQL = "SELECT * FROM imovel WHERE desc_aluguel LIKE '%"& busca_venda &"%'"

                       

                        else

 

                                if strBusca <> "" then

                                        stringConexao = "Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & Server.MapPath("../bd/bd.mdb")

                                        Set RsConexao = Server.CreateObject("ADODB.Connection")

                                        RsConexao.Open stringConexao

                                        strSQL = "SELECT * FROM imovel WHERE tp_imovel LIKE '%"& busca_tipo &"%'"

                               

                                        else

                                       

                                                if valor <> "" then

                                                        stringConexao = "Provider=Microsoft.JET.OLEDB.4.0; Data Source=" & Server.MapPath("../bd/bd.mdb")

                                                        Set RsConexao = Server.CreateObject("ADODB.Connection")

                                                        RsConexao.Open stringConexao

                                                        strSQL = "SELECT * FROM imovel WHERE valor LIKE '%"& valor &"%'"

                                                end if

                                end if

                end if

end if

Set RS = RsConexao.Execute(strSQL) %>

 

                                  <div align="center" class="style10"><br />

                      <span class="style11">Resultados</span></div>

                   </td>

                  </tr>

                <tr>

                  <td bgcolor="#FFFFFF"><hr  color="#CCCCCC"size="1"></td>

                  </tr>

                <tr>

                  <td height="3"><table width="100%" border="0" cellpadding="5" cellspacing="0">

                    <tr>

                      <td width="15%" height="20" bgcolor="#0033CC" class="texto"><div align="center" class="style7 style12"><a href="modelo.html" class="style8">Referência</a></div></td>

                      <td width="33%" class="texto" bgcolor="#0033CC"><div align="center" class="style14"><a href="modelo.html" class="style8">Bairro</a></div></td>

                      <td width="16%" class="texto" bgcolor="#0033CC"><div align="center" class="style14">Dormitórios</div></td>

                      <td width="11%" class="texto" bgcolor="#0033CC"><div align="center" class="style14">Vagas</div></td>

                      <td width="25%" class="texto" bgcolor="#0033CC"><div align="center" class="style14">Preço</div></td>

                    </tr>

                  </table>

                    <font face="Arial"><span style="font-size:10pt;"> </span></font> <font face="Arial"><span style="font-size:10pt;">

                    <%While not RS.EOF%>

                    </span></font>

                    <table width="100%" border="0" cellspacing="0" cellpadding="5">

                      <tr>

                        <td width="15%" height="24" bgcolor="#F7F7F7" class="texto"><div align="center" class="texto"><a href="modelo.html" class="texto"></a>

                            <% response.Write(rs("referencia")) %>

                        </div></td>

                        <td width="33%" class="texto" bgcolor="#F7F7F7"><div align="center"><a href="ve_imovel.asp?id_imovel=<%=rs("id_imovel")%>"><font class="texto">

                            <% response.Write(rs("bairro")) %>

                        </font></a></div></td>

                        <td width="16%" class="texto" bgcolor="#F7F7F7">

                                                <div align="center" class="texto">

                                                <a href="modelo.html" class="texto">

                            <% response.Write(rs("dormitorios")) %>

                        </a></div></td>

                        <td width="11%" class="texto" bgcolor="#F7F7F7"><div align="center"><a href="modelo.html" class="texto"><font class="texto">

                            <% response.Write(rs("vagas")) %>

                        </font></a></div></td>

                        <td width="10%" class="texto" bgcolor="#F7F7F7"><div align="center" class="texto">

                          <div align="right"><strong>R$                            </strong></div>

                        </div></td>

                        <td width="15%" class="texto" bgcolor="#F7F7F7"><div align="right">

                          <% response.Write(rs("valor"))%>

                        </div></td>

                      </tr>

                    </table>

                    <div align="center"><font face="Arial"><span style="font-size:10pt;">

                      <%

RS.MoveNext

Wend

 

%>

<!-- </span></font> <br>

<p align="center" class="style16">

                        <font face="Arial"> Não foi informado nenhum dado. </font></p>

                      <font face="Arial"><span style="font-size:10pt;">

-->

                      <%

 

 %>

                     

                     <br>

<br>

<br>

 </span></font></div></td>

                  </tr>

              </table>

                <table width="700" border="0" cellspacing="0" cellpadding="0" align="center">

                  <tr>

                    <td bgcolor="#0059B3"><table width="90%" border="0" cellspacing="0" cellpadding="7" align="center">

                        <tr>

                          <td class="textobr"><div align="center"><font color="#FFFFFF">Moradia Imobiliária

                            - Tel.: (11) 6546.2299 8211; Fax: (11) 6943.2121 - contato@moradia.imb.br</font></div></td>

                        </tr>

                    </table></td>

                  </tr>

                </table>

               </td>

              </tr>

          </table></td>

          </tr>

      </table>

    </td>

  </tr>

</table>

</form>

</body>

 

Como não encotrei no forum nenhum topico ou modelo assim estiver funcionando essa busca eu vou deixar ele enxuto pra postar aqui no forum....

 

Valew pela força galera.

 

Desde já eu agradeço a força de voceis...

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

duas alternativas....faça usando ajax(mais complexo) ou faço uma logica com IF para verificar quals campos estão preenchidos e vai concatenando o where do SQL em uma variavel(de acordo com os itens preenchidos), depois executa o sql normalmente concatenando essa variavel do where ao restante do sql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria como você me fazer um exemplo por favor ? é que sou meio leigo e estou aprendendo junto ao forum....

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando trabalhava com o projeto de imobiliárias, utilizo esse tipo de montagem do SQL:

 

ASP
sql = "SELECT * FROM `imoveis` where ativo = 1 "

 

cont = 0

 

For each Obj In Request.Form

        If Request.Form(Obj) <> "" and Cstr(obj) <> "Submit" and Cstr(obj) <> "cnpj_cpf" and CStr(Obj) <> "vl_min" and CStr(Obj) <> "vl_max" then

                cont = cont + 1

        end if

Next

'Response.Write cont & "<br>"

if cont = 0 then

        Response.Write ""

        Else

        sql = sql & " and "

        i = 1

        For Each Obj In Request.Form ' Supondo o uso do method = "post"

                If Request.Form(Obj) <> "" and Cstr(obj) <> "Submit" and Cstr(obj) <> "cnpj_cpf" and CStr(Obj) <> "vl_min" and CStr(Obj) <> "vl_max" then ' aqui removo os campos que não quero que seja exibido.

                        if i = cont then

                                SQL = SQL & Obj & "='" & Request.Form(Obj) & "' "

                        else

                                SQL = SQL & Obj & "='" & Request.Form(Obj) & "' and "

                                i = i + 1

                        end if

                end if

        Next

        SQL = SQL

end if

 

 

Lembrando que o atributo name dos campos do form tem de ser igual ao campo correspondente no banco de dados.

 

Daí é só estudar um pouquinho e adaptar.

 

Flw

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.