helkton 0 Denunciar post Postado Janeiro 31, 2012 Olá pessoal estou procurando algo mais sem sucesso, estou a fazer um site pra uma imobiliaria porem agora gostaria de colocar um sistema de busca com filtros. Alguem pode me ajudar... Bom suponhamos que o internauta queira COMPRAR uma CASA na CIDADE X <table> <form action="procurar.php" method="GET"> <tr> <td>Finalidade</td> <td>Tipo de Imóvel</td> <td>Cidade</td> </tr> <tr> <td><select name="finalidade"> <option value="alugar">Alugar </option> <option value="comprar">Comprar </option> </select> </td> <td> <select name="tipo"> <option value"casa">Casa</option> <option value"terreno">Terreno</option> <option value"apartamento">Apartamento</option> <option value"rural">Rural</option> </select> </td> <td> <select name="cidade"> <option value"todas_as_cidade">Todas as Cidades Cadastradas em meu banco</option> </select> </td> <td> <input type="submit" value="Procurar" /> </td> </tr> </form> </table> Como faço as devidas funçoes PHP, bem basicão mesmo apenas para eu ter uma idéia e ir modificando OK Desde já Agradeço e estou no aguardo. Compartilhar este post Link para o post Compartilhar em outros sites
Hiago Drigo 5 Denunciar post Postado Janeiro 31, 2012 SELECT * FROM casas WHERE finalidade LIKE '%alugar%' AND tipo LIKE '%casa%' AND cidade LIKE '%saopaulo%' Onde esses nomes seriam variáveis que você estaria pegando os valores desse pequeno formulário de pesquisa. $finalidade = $_POST['finalidade']; Compartilhar este post Link para o post Compartilhar em outros sites
visitante_php 0 Denunciar post Postado Janeiro 31, 2012 q curioso, basta procurar na busca do forum e achar algo identico ao seu... =D http://forum.imasters.com.br/topic/455841-busca-existe-alguma-forma-de-fazer-isso-sem-ser-por-gambiarra/ Compartilhar este post Link para o post Compartilhar em outros sites
helkton 0 Denunciar post Postado Janeiro 31, 2012 bom olha só o que fiz ta quase funfando... EU COLOQUEI UM NAME EM CADA SELECT DO FORMULÁRIO DE BUSCA ASSIM... <table> <form action="procurar.php" method="GET"> <tr> <td>Finalidade</td> <td>Tipo de Imóvel</td> <td>Cidade</td> </tr> <tr><td><select name="finalidade"> <option value="alugar">Alugar </option> <option value="comprar">Comprar </option> </select> </td> <td><select name="tipo"> <option value"casa">Casa</option> <option value"tipo">Terreno</option> <option value"tipo">Apartamento</option> <option value"rural">Rural</option> </select> </td> <td><select name="cidade"> <option value"todas_as_cidades">Todas as Cidade Cadastradas</option> </select> </td> <td> <input type="submit" value="procurar"> </td> </tr> </form> </table> SCRIPT PHP QUE FAZ AS BUSCAS EM MEU BANCO DE DADOS Ele está junto com um script que fiz para paginar os resultados encontrados OK... <?php $qtdlinkslaterais=9; $npp=10; //pega o número da página a mostrar $page=(!empty($_GET['page'])&&is_numeric($_GET['page']))?$_GET['page']:1; //Conexão com o banco: include("../admin/noticias/configdb.php"); $busca=(!empty($_GET['finalidade']))?mysql_real_escape_string($_GET['finalidade']):''; $busca=(!empty($_GET['tipo']))?mysql_real_escape_string($_GET['tipo']):''; $busca=(!empty($_GET['cidade']))?mysql_real_escape_string($_GET['cidade']):''; if($busca=='') if($busca=='') if($busca=='') //consulta para pegar o total de resultados encontrados $sql="SELECT COUNT(*) AS total FROM imoveis WHERE finalidade LIKE '%" . $finalidade . "%' OR tipo LIKE '%" . $tipo . "%' OR cidade LIKE '%" . $cidade . "%' order by valor"; $res=@mysql_query($sql, $conexao) or die("Erro no MySQL:<br/>" . mysql_errno()); $total=mysql_result($res, 0, 'total'); mysql_free_result($res); //se não encontrou resultados if($total==0) { echo "<div style='width:500px; border-right:0px blue solid; color:gray;'> Desculpe-nos. Pode ter havido um engano não encontramos nada relacionado com sua busca <font color='red' size='5'><u>" . $finalidade . " </u></font>.</br> <a href='/'>Tente novamente.</a></div> "; exit(); } //pega total de páginas arredondando o número para cima $pages=ceil($total/$npp); //maior que o total de páginas $page=max(min($pages, $page), 1); $inicio=($page-1)*$npp; //Recupera resultados $sql="SELECT * FROM imoveis WHERE finalidade LIKE '%" . $finalidade . "%' OR tipo LIKE '%" . $tipo . "%' OR cidade LIKE '%" . $cidade . "%' order by valor LIMIT $inicio, $npp"; $res=@mysql_query($sql, $conexao) or die("Erro no MySQL:<br/>" . mysql_errno()); $pmos= min($total, ($inicio+1)); $umos=min($total, ($inicio+$npp)); //exibe informações echo "<div style='text-align:center; font-size:16px; padding:5px; margin-bottom:15px; color:gray;'>Foram encontrados <b>" . $total . "</b> resultado(s) para - <b><u> " . $finalidade . " </b></u></div> "; //exibe resultados encontrados no Banco de Dados while(list($codigo, $tipo, $area, $finalidade, $complemento, $endereço, $bairro, $cidade, $valor, $telefone, $informações, $foto, $lat, $lon)=mysql_fetch_array($res)) { //MOSTRA OS RESULTADOS DENTRO DESTA TABELA HTML echo " $codigo<br>"; } echo "<div style='width:300px; text-align:center;float:left; margin-left:190px;font-size:20px;border-left:0px red solid;border-right:0px red solid;'>"; mysql_free_result($res); //exibe painel de navegação por páginas if($page>1) { $panterior=$page-1; echo "<a href=\"?resultado=" . $busca . "&page=" . $panterior . "\"> Anterior </a>";} $latesq=($page-$qtdlinkslaterais<1)?1:$page-$qtdlinkslaterais; $latdir=($page+$qtdlinkslaterais>$pages)?$pages:$page+$qtdlinkslaterais; for($i=$latesq; $i<=$latdir; $i++) { if($i==$page) { echo "<font color='blue' size='6'><b>" . $i . " </b></font> "; continue;} echo "<a href=\"?resultado=" . $busca . "&page=" . $i . "\"> " . $i . "</a> "; } if($page<$pages) { $pproxima=$page+1; echo "<a href=\"?resultado=" . $busca . "&page=" . $pproxima . "\"> Próxima</a>";} ?></div> Porém ainda não esta muito certo uma vez que quando eu marco as opções a serem buscadas em meu banco ele apenas filtra a opção cidade me mostrando todos os resultados da cidade escolhida. Vejam o link de como fica após eu mandar pesquisar. ELE PEGA OS VALORES [GET] MARCADOS NO FORMULARIO POREM SÓ FILTRA AS CIDADES... procurar.php?finalidade=comprar&tipo=casa&cidade=CIDADE_ESCOLHIDA. Compartilhar este post Link para o post Compartilhar em outros sites
helkton 0 Denunciar post Postado Fevereiro 1, 2012 Olá pessoal fiz algumas mudanças porem ainda naum esta legal.. <?php $qtdlinkslaterais=9; $npp=10; //pega o número da página a mostrar $page=(!empty($_GET['page'])&&is_numeric($_GET['page']))?$_GET['page']:1; //Conexão com o banco: include("../admin/noticias/configdb.php"); //pega o valor do campo de busca $busca=(!empty($_GET['finalidade']))?mysql_real_escape_string($_GET['finalidade']):''; //consulta para pegar o total de resultados encontrados $sql="SELECT COUNT(*) AS total FROM imoveis WHERE finalidade LIKE '%" . $busca . "%' AND tipo LIKE '%" . $busca . "%' AND cidade LIKE '%" . $busca . "%' order by valor"; $res=@mysql_query($sql, $conexao) or die("Erro no MySQL:<br/>" . mysql_errno()); $total=mysql_result($res, 0, 'total'); mysql_free_result($res); //se não encontrou resultados if($total==0) { echo "<div style='width:500px; border-right:0px blue solid; color:gray;'> Desculpe-nos. Não foi encontrado nenhum imóvel.</br> <a href='./'>Voltar.</a></div> "; exit(); } //pega total de páginas arredondando o número para cima $pages=ceil($total/$npp); //maior que o total de páginas $page=max(min($pages, $page), 1); $inicio=($page-1)*$npp; //Recupera resultados $sql="SELECT * FROM imoveis WHERE finalidade LIKE '%" . $busca . "%' AND tipo LIKE '%" . $busca . "%' AND cidade LIKE '%" . $busca . "%' order by valor LIMIT $inicio, $npp"; $res=@mysql_query($sql, $conexao) or die("Erro no MySQL:<br/>" . mysql_errno()); $pmos= min($total, ($inicio+1)); $umos=min($total, ($inicio+$npp)); //exibe resultados encontrados no Banco de Dados while(list($codigo, $tipo, $area, $finalidade, $complemento, $endereço, $bairro, $cidade, $valor, $telefone, $informações, $foto, $lat, $lon)=mysql_fetch_array($res)) { //MOSTRA OS RESULTADOS DENTRO DESTA TABELA HTML echo " $finalidade - $tipo - $cidade<br>"; } echo "<div style='width:300px; text-align:center;float:left; margin-left:190px;font-size:20px;border-left:0px red solid;border-right:0px red solid;'>"; mysql_free_result($res); //exibe painel de navegação por páginas if($page>1) { $panterior=$page-1; echo "<a href=\"?resultado=" . $busca . "&page=" . $panterior . "\"> Anterior </a>";} $latesq=($page-$qtdlinkslaterais<1)?1:$page-$qtdlinkslaterais; $latdir=($page+$qtdlinkslaterais>$pages)?$pages:$page+$qtdlinkslaterais; for($i=$latesq; $i<=$latdir; $i++) { if($i==$page) { echo "<font color='blue' size='6'><b>" . $i . " </b></font> "; continue;} echo "<a href=\"?resultado=" . $busca . "&page=" . $i . "\"> " . $i . "</a> "; } if($page<$pages) { $pproxima=$page+1; echo "<a href=\"?resultado=" . $busca . "&page=" . $pproxima . "\"> Próxima</a>";} ?></div> ele ainda me retorna os resultados obtidos somente do primeiro <select> da finalidade que é ALUGAR OU COMPRAR o restante ele não filtra - o tipo de imóvel (casa, apto ou terreno) e nem a cidade - ficando assim.. procurar.php?finalidade=alugar&tipo=Casa&cidade=Campo+Grande+-+MS Alguem tem um modelo pronto ai pra me arrumar. rsrsrsrsr não custa nada perguntar né rsrsrs Compartilhar este post Link para o post Compartilhar em outros sites