Filtro de dados de tabela, MySQL, MariaDB, Jquery

08/03/2019

30

Galera blza? Então eu tenho uma dúvida que tá quebrando minha cabeça a um bom tempo, digamos que eu tenha uma tabela com as seguintes colunas.

ID, NOME DO PRODUTO, QUANTIDADE, FORNECEDOR.

Aí eu preciso de vários filtros para trazer resultados bem específicos, como por exemplo:

Filtro: produto, quantidade.
Filtro: quantidade, fornecedor.

Para fazer isso, eu vou ter que ir na mão usando Else If ou existe outra forma mais rápida?

Atualmente estou utilizando o datatables, mas ainda não é o que eu quero.
Marcelo Loureiro

Marcelo Loureiro

Responder

Posts

20/05/2019

William Nascimento

Galera blza? Então eu tenho uma dúvida que tá quebrando minha cabeça a um bom tempo, digamos que eu tenha uma tabela com as seguintes colunas.

ID, NOME DO PRODUTO, QUANTIDADE, FORNECEDOR.

Aí eu preciso de vários filtros para trazer resultados bem específicos, como por exemplo:

Filtro: produto, quantidade.
Filtro: quantidade, fornecedor.

Para fazer isso, eu vou ter que ir na mão usando Else If ou existe outra forma mais rápida?

Atualmente estou utilizando o datatables, mas ainda não é o que eu quero.


Olá Marcelo, geralmente esse tipo de filtro é realizado no seu banco, ou seja, nas suas queries. Quanto ao uso de ELSE IF, você pode fazer com SWITCH CASE. Como por exemplo:


<?php 


	$filtro = $_POST['filtro'];
	$resultado = [];
	
	switch($filtro){
		case 'QUANTIDADE':
			$query = "SELECT ... FROM TABELA WHERE ... ORDER BY ... DESC";
			$resultado = $query;
		break;
		case 'FORNECEDOR':
			$query = "SELECT ... FROM TABELA WHERE ... ORDER BY ... DESC";
			$resultado = $query;
		break;
		case 'PRODUTO':
			$query = "SELECT ... FROM TABELA WHERE ... ORDER BY ... DESC";
			$resultado = $query;
		break;
	}


Esse é um exemplo bem tosco, para você poder ter uma noção.

Obs: Você quiser usar os filtro sem o carregamento da página você terá que optar por usar o Ajax nas requisições.


Responder

21/05/2019

William Nascimento

Ou também você pode fazer direto na query do SQL, por exemplo:


SELECT IDADE
 CASE
          WHEN IDADE > 18 THEN ( SELECT ... FROM )
          WHEN IDADE < 18 THEN ( SELECT ... FROM )
          ELSE ....
END
FROM PESSOA
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários,
consulte nossa política de privacidade.

Aceitar