Jump to content

Pesquisa Avançada


Mac135
 Share

Recommended Posts

Bons dias

Estou a desenvolver para um site uma pesquisa onde podem ser seleccionados vários campos ou mesmo a introdução de texto para pesquisa. Pode surgir várias combinações de campos que uma pessoa possa pesquisar.

A minha pergunta é, qual o melhor método para fazer o código de uma pesquisa mais complexa, onde poderão existir pelo meio alguns campos em branco.

A pesquisa é para uma site de pesquisa de casas, que inclui pesquisas por area, preço, estado, tipo de imovel, localidade, etc

Se me conseguirem arranjar alguns exemplos melhor.

Link to comment
Share on other sites

Mac135, tenho a certeza que existe muita gente por aqui capaz de te ajudar, mas não podes simplesmente pedir para te darem exemplos de código, ou seja, ninguém te vai dar a papinha.

Tenta ser mais especifico. Se quiseres os métodos utilizados posso-te deixar umas dicas mas não o código 😁

Link to comment
Share on other sites

Mac135, isso não é pesquisa avançada, é pesquisa condicional...

Quando leio "pesquisa avançada" estou à espera de encontrar dúvidas sobre morfologia, stemmers, redes neurais...

Qual é a tua dúvida em concreto?

1. Tens os campos numa ou mais tabelas da BD?

2. Sabes quais os campos a pesquisar e sabes detectar quais têm conteúdo e quais não têm?

3. Sabes construir queries dinâmicamente?

Se a resposta for afirmativa a todas as questões, não estou a perceber a tua dificuldade...

"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Link to comment
Share on other sites

Quando queres fazer pesquisas à base de dados em PHP crias uma string de pesquisa, que depois envias para a base de dados. Tal como todas as strings, essa pode ser construida condicionalmente antes de ser enviada, utilizando variáveis que a vão compondo. Vê o seguinte exemplo:


if ( condicao 1 ) {
   $campos= " SELECT campo1, campo2, campo5, campo8 " ;
   $tabelas= " FROM tabela1 LEFT JOIN ... ";
   $condicoes= "WHERE condicao_xpto";
   }
elseif ( condicao 2 ) {
   $campos= " SELECT campo3, campo5, campo7, campo8 " ;
   $tabelas= " FROM tabela2 RIGHT JOIN ... ";
   # repara que aqui não vamos usar condições no sql
   }

# de seguida juntamos todos os bocados da string que vai ser remetida à bd
$string_pesquisa = "
                                  $campos
                                  $tabelas
                                  $condicoes";

# e envias o pedido para a base de dados
$res_pesq=mysql_query($string_pesquisa, $ligacao_a_bd);

Com esta lógica, constróis o SQL que queres antes de o remeter para a BD.

Naturalmente que o que vais ter em termos de tabelas, condições e campos é determinado por ti. Adapta conforme precisares.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.