Consulta avançada Mysql e PHP

27/04/2019

8

Boa tarde, tenho duvidas de como montar a seguinte funcionalidade.

Tenho uma tabela no meu banco e uma tela de consulta PHP. Aparece para o usuario os seguintes campos ( por exemplo ) para ele preencher com os parametros que deseja buscar:

- MARCA
- RESPONSAVEL
- DATA
- COR

A jogada esta em: O usuário pode entrar com o dado em somente um filtro ou em todos, e minha query deve ser capaz de absorver os parâmetros informados para fazer a consulta. Que pode ser um ou pode ser todos....

Qual a melhor maneira de fazer isso ?
Responder

Posts

27/04/2019

Helton Fábio

Boa tarde, tenho duvidas de como montar a seguinte funcionalidade.

Tenho uma tabela no meu banco e uma tela de consulta PHP. Aparece para o usuario os seguintes campos ( por exemplo ) para ele preencher com os parametros que deseja buscar:

- MARCA
- RESPONSAVEL
- DATA
- COR

A jogada esta em: O usuário pode entrar com o dado em somente um filtro ou em todos, e minha query deve ser capaz de absorver os parâmetros informados para fazer a consulta. Que pode ser um ou pode ser todos....

Qual a melhor maneira de fazer isso ?

pelo que eu entendi você quer adicionar um multiplo select pra poder criar a query, certo?
você ta usando ajax? se sim, monte um objeto com os campos selecionado e crie a query com o que for selecionado.
Exemplo.:
Usuário seleciona cor e marca > você monta um objeto em javascript com os valores selecionados pra mandar via ajax (o objeto tem como atributos os nomes dos parâmetros, portanto vai estar com os parâmetros preenchidos ou vazios) > dai tu faz o select e a query tu cria uma query genérica que vai adicionando os parâmetros
$query = "SELECT * FROM produto ";
//checa cada uma das propriedades, aqui vou só fazer uma
if($data->cor !== ''){
$sql .= "WHERE cor =".$data->cor;
}
//ai você faz os outros atributos até por fim executar
$stmt->execute()

enfim, a lógica é simples:
- Objeto JavaScript com as propriedades
- Ajax para mandar o objeto com o que foi preenchido
- Página intermediária pra mandar os valores pra DAO
- Leitura no banco conforme os atributos preenchidos
- Retorno da query

Espero ter ajudado.
Responder