Query com valores nulos?

3 respostas
J

Estou com um problema em uma Query e gostaria de uma luz, tenho uma classe de produtos e nesse produto tenho duas clausulas booleanas que são promoção e pronta entrega, e estou quebrando a cabeça para montar o select, pois o produto pode ser pronta entrega OU promoção, ou pronta entrega E promoção, ou nenhum dos dois, apenas o produto pela categoria dele. Tentei algumas query com IS NULL, mas ou ele retorna todos os registros ou nenhum.

Se alguém já passou por isso, ficaria grato por uma mãozinha.

3 Respostas

D

Você tem o código que a gente possa ver e entender o que pode está ocorrendo?

J
$pdo = $this->con->conecta();
$buscaProduto = $pdo->prepare("SELECT p.id, p.nome FROM produtos AS p WHERE categorias_id = :categorias_id AND promocao = :promocao AND prontaentrega = :prontaentrega;");
$buscaProduto->bindValue(":categorias_id", $this->categorias_id, PDO::PARAM_INT);
$buscaProduto->bindValue(":promocao", $this->promocao);
$buscaProduto->bindValue(":prontaentrega", $this->prontaentrega);
$buscaProduto->execute();
$resultado = $buscaProduto->fetchAll(PDO::FETCH_ASSOC);

O problema é que eu precisaria que quando não fosse passado os parâmetros promoção e pronta entrega, ele chamasse todos os produtos, tanto promoção quanto pronta entrega, e assim cada vez que eu preenchesse os parâmetro ele me trouxesse o que preciso, como se fosse uma query “genérica”. Não sei se consegui ser claro.

F

BOm dia amigo, não comheço nada de php, porém acho que entendi teu problema, vc poderia montar uma string query dinamica

tipo

$query = "";

if(promocao && prontaEntrega)
   $query = "faça a query de todos os produtos";
else
 $sql = "faça a query com restrições"

aqui vc executa a query(não conheço php mas acho que é fetchAll)

Criado 9 de outubro de 2017
Ultima resposta 10 de out. de 2017
Respostas 3
Participantes 3