Filtro de dados de tabela, MySQL, MariaDB, Jquery

jQuery

PHP

MariaDB

08/03/2019

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.
Lindoberto Araújo

Lindoberto Araújo

Curtidas 0

Respostas

William Nascimento

William Nascimento

08/03/2019

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.


GOSTEI 0
William Nascimento

William Nascimento

08/03/2019

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
GOSTEI 0
POSTAR