Ir para conteúdo

POWERED BY:

Arquivado

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

Levi Gonçalves

Problemas com pesquisa

Recommended Posts

Olás...

 

Estou desenvolvendo um site em php de classificados de imóveis e estou com problemas em filtrar as pesquisas. É o seguinte: O usuário deverá selecionar no formulário a finalidade (alugar ou comprar), o tipo (residencial, comercial, rural ou lazer), entre outros dados. Fiz o código abaixo, mas ocorreu que houve redundância na pesquisa. Os dados que deveriam aparecer na consulta se repetiram por 17 vezes cada um, que é o número de cadastros que tenho na tabela cadastro.

 

Alguém poderia me dar o caminho das pedras para que não haja repetição de dados na pesquisa (aparecer 1 vez só ao invés de 17)?

 

$sql = "Select * From anu_imovel, cadastro

Where (anu_imovel.im_datavcmto > '$data') + (anu_imovel.im_fim = '$finalidadeimovel') + (anu_imovel.im_tipo = '$tipoimovel')

Order by cadastro.preferencial desc, anu_imovel.im_datavcmto asc";

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema naturalmente deve estar nas condições do WHERE. A sintaxe com o "+" não conhecia mas acho que o problema está aí mesmo. Em todo caso, o "+" deverá corresponder ao "OR" e o que me parece que precisas é do "AND", ou seja, a filtragem deveria re---ar apenas os imóveis que respeitam todas as condições e não os imóveis que respeitam a pelo menos uma das condições. Substitui o "+" por "AND" e acho que tens o problema resolvido.

 

Lógica booleana (só para relembrar):

 

VERDADE AND VERDADE = VERDADE

VERDADE AND FALSO = FALSO

FALSO AND VERDADE = FALSO

FALSO AND FALSO = FALSO

 

VERDADE OR VERDADE = VERDADE

VERDADE OR FALSO = VERDADE

FALSO OR VERDADE = VERDADE

FALSO OR FALSO = FALSO

Compartilhar este post


Link para o post
Compartilhar em outros sites

usar duas tabelas sem nenhum ponto de junçao vai dar produto cartesiano multiplicando uma tabela pela outra vindo um monte de linha 'repetida'

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.