maiconfss 0 Denunciar post Postado Junho 18, 2013 Bom dia Pessoal, sou novo no PHP, gostaria de uma ajuda estou fazendo um sistema de busca em PHP onde tenho três campos de pesquisa são eles: CIDADE BAIRRO TIPO Possuo tres tabelas tambem sao elas: cidade(campo ==> id, cidade) bairro(campo ==> id, id_cidade, bairro) imoveis(campo ==> cod_imoveis, cidade, bairro, tipo, valor, quarto, banheiro, publicado) Gostaria de saber como fazer os mesmo dinamicamente ou seja quando eu for selecionar a cidade so aparecer as cidades que tem imoveis cadastrados e com o campo publicado(tabela imoveis) igual a SIM, e quando for selecionar o campo bairro só aparecer os bairros da cidade selecionada no campo cidade e com imoveis cadastrados, já o campo apartamento so trazer os apartamentos cujo se encaixem nas opções selecionadas acima. SERA QUE ALGUÉM PODERIA ME AJUDAR TO QUEBRANDO A CABEÇA JÁ VI VÁRIOS VIDEOS E LÊ TUTORIAIS MAS NÃO ESTOU CONSEGUINDO. A PESQUISA E FEITA EM UMA PAGINA E ABRE OS RESULTADOS EM OUTRA SE PUDEREM ME ENVIAR O CÓDIGO AGRADEÇO. DESDE JÁ AGRADEÇO ABRAÇO Compartilhar este post Link para o post Compartilhar em outros sites
hufersil 145 Denunciar post Postado Junho 18, 2013 Somente cidades com imóveis SELECT c.* FROM cidade c, imoveis i WHERE c.id = i.id_cidade AND i.publicado = 1 GROUP BY c.id ORDER BY c.cidade Somente bairros com imóveis SELECT b.id, b.bairro, c.cidade FROM bairro b, cidade c, imoveis i WHERE b.id = i.id_bairro AND b.id_cidade = c.id AND i.id_cidade = c.id AND i.publicado = 1 GROUP BY b.id ORDER BY b.bairro, c.cidade Minha observação: com um grupo pequeno de registros, você não verá tanto impacto, mas se a tabela de imóveis tiver muitos registros esta metodologia poderá fazer com que suas queries fiquem lentas. Recomendo criar um campo na tabela de cidades e de bairros indicando se aquele bairro/cidade tem imóveis, e então, verificar por esta flag. Esta flag seria atualizada ao salvar um imóvel naquele determinado bairro/cidade. @braços Compartilhar este post Link para o post Compartilhar em outros sites
maiconfss 0 Denunciar post Postado Junho 18, 2013 Hugo, obrigado, mas o que preciso é de um scrip mais completão para analisar e estudar em cima, outra questão e que o filtro tem funcionar da seguinte maneira se eu escolher cidade e não preecher o bairro ele pega todos os imoveis da cidade caso contrario pega todos os bairros. Pode me ajudar? Pessoal, ai esta meu script, o problema é que nos filtrol quando preencho a cidade ele traz certinho somente os imoveis da cidade que selecionei porem se eu colocar a cidade mais o bairro ele traz não respeita o filtro bairro isso porque coloquei no select como "or" o problema e que se eu colocar "AND" e o cliente não selecionar o bairro ele nao traz nada como faço para isso funcionar, outra dúvida que tenho é como faço para na apresentação dos dados ele trazer o nome da cidade no meu caso ele esta me retornando o id como insiro a informacao para pegar o nome? Desde já agradeço. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Listar Imoveis</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <span>MAICON O CARA</span><br /> <?php require ('conecao/dbconec.php'); echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'; ?> </select><br /> <span>Cidade</span><br /> <select name="cidade"> <option value="" selected="selected">Selecione a cidade...</option> <?php $pega_cidade = mysql_query("SELECT id_cidade, cidade FROM cidade WHERE EXISTS (SELECT * FROM imoveis imo WHERE cidade.id_cidade = imo.id_cidade AND imo.publicado ='SIM' and imo.vendido ='NAO')"); if(mysql_num_rows($pega_cidade) == 0){ echo '<option value="">Não foram encontrados bairro ainda</option>'; }else{ while($linhaA = mysql_fetch_array($pega_cidade)){ echo '<option value="'.$linhaA['id_cidade'].'">'.$linhaA['cidade'].'</option>'; } } ?> </select><br /> <span>Bairro</span><br /> <select name="bairro"> <option value="" selected="selected">Selecione o bairro...</option> <?php $pega_bairro = mysql_query("SELECT id_bairro, bairro FROM bairro WHERE EXISTS (SELECT * FROM imoveis imo WHERE bairro.id_bairro = imo.id_bairro AND imo.publicado ='SIM' and imo.vendido ='NAO')"); if(mysql_num_rows($pega_bairro) == 0){ echo '<option value="">Não foram encontrados bairro ainda</option>'; }else{ while($linhaB = mysql_fetch_array($pega_bairro)){ echo '<option value="'.$linhaB['id_bairro'].'">'.$linhaB['bairro'].'</option>'; } } ?> </select><br /> <span>Tipo</span><br /> <select name="tipo"> <option value="" selected="selected">Selecione o tipo...</option> <?php //O SELECT ACIMA VERIFICA SE O TIPO EXISTE NA TABELA IMOVEIS OU SEJA SO APRESENTARA NA SELECAO TIPO QUE TEM IMOVEIS CADASTRADOS E PUBLICADOS// $pega_tipos = mysql_query("SELECT id_tipo, tipo FROM tipo WHERE EXISTS (SELECT * FROM imoveis imo WHERE tipo.id_tipo = imo.id_tipo AND imo.publicado ='SIM')"); if(mysql_num_rows($pega_tipos) == 0){ echo '<option value="">Não foram encontrados tipos ainda</option>'; }else{ while($linhaC = mysql_fetch_array($pega_tipos)){ echo '<option value="'.$linhaC['id_tipo'].'">'.$linhaC['tipo'].'</option>'; }} ?> </select><br /> <span>Preço</span><br /> <select name="preco"> <option value="" selected="selected">Selecione o preço...</option> <option value="15000">Até 15000</option> <option value="20000">Até 20000</option> <option value="30000">Até 30000</option> <option value="17000">Até 17000</option> </select><br /> <input type="hidden" name="acao" value="enviar" /> <input type="submit" value="buscar" /> </form> <hr /> <?php if(isset($_POST['acao']) && $_POST['acao'] == 'enviar'){ $cidade = $_POST['cidade']; $bairro = $_POST['bairro']; $tipo = $_POST['tipo']; $preco = $_POST['preco']; switch($preco){ case '15000'; $valor = 'AND preco <= 15000'; break; case '20000'; $valor = 'AND preco BETWEEN 15000 AND 20000'; break; case '30000'; $valor = 'AND preco BETWEEN 20000 AND 30000'; break; case '17000'; $valor = 'AND preco BETWEEN 15000 AND 17000'; break; } $seleciona_imovel = mysql_query("SELECT cod_imoveis, id_cidade, id_bairro, id_tipo, preco, desc_curta, quarto, banheiro, garagem FROM imoveis WHERE id_cidade = '$cidade' OR id_bairro = '$bairro' OR id_tipo = '$tipo' AND publicado = 'SIM' AND vendido = 'NAO' $valor"); if(mysql_num_rows($seleciona_imovel) == 0){ echo '<h1>Desculpe, mais sua busca, não retornou maicon</h1>'; }else{ while($linhaImovel = mysql_fetch_array($seleciona_imovel)){ echo '<br>Caracteristicas do imóvel: Código: '.$linhaImovel['cod_imoveis'].' <p> '.$linhaImovel['desc_curta'].' <br>Cidade: '.$linhaImovel['id_cidade'].' <br>Bairro: '.$linhaImovel['id_bairro'].' <br>Tipo : '.$linhaImovel['id_tipo'].' <br>Quarto(s): '.$linhaImovel['quarto'].' <br>Banheiro(s): '.$linhaImovel['banheiro'].' <br>Garagem(s): '.$linhaImovel['garagem'].' <br>Preço de Venda: R$: '.$linhaImovel['preco'].'<p>'; } }} ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites