Filtro de dados de tabela, MySQL, MariaDB, Jquery

08/03/2019

0

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

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar