Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Célio A.

[Resolvido] Erro ao adicionar filtros a consulta.

Recommended Posts

Bem, fiz vários testes para filtrar uma consulta, a primeira que me deu um trabalhão foi o calculo de idade que consegui desta maneira:

 

$result = mysql_query("SELECT * ,(YEAR(CURDATE()) - YEAR(dn)) - (RIGHT(CURDATE(),5) < RIGHT(dn,5)) AS idade 
FROM id_2 HAVING idade BETWEEN 25 AND 30");

 

Só funfou assim, usando o HAVING.

 

Daí meu outro filtro beleza:

 

$result = mysql_query("SELECT * FROM id_2 WHERE 
faixa_id BETWEEN $faixainicial AND $faixafinal 
AND genero_id = $genero");

 

Agora como junto tudo isto em uma única consulta? De todas as maneiras que tentei deu erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como tentou e qual erro apareceu?

 

Orientações para uma boa participação

 

Algo assim deve funcionar:

$result = mysql_query("SELECT * ,(YEAR(CURDATE()) - YEAR(dn)) - (RIGHT(CURDATE(),5) < RIGHT(dn,5)) AS idade 
FROM id_2 WHERE faixa_id BETWEEN $faixainicial AND $faixafinal 
AND genero_id = $genero HAVING idade BETWEEN 25 AND 30");

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo desta forma, eu estava colocando o HAVING antes do WHERE, e na verdade ainda não entendo porque não dava certo.

 

$result = mysql_query("SELECT * 
,(YEAR(CURDATE()) - YEAR(dn)) - (RIGHT(CURDATE(),5) < RIGHT(dn,5)) AS idade 
FROM id_2 HAVING idade BETWEEN 20 AND 30
WHERE faixa_id BETWEEN $faixainicial AND $faixafinal 
AND genero_id = $genero");

//estrutura de controle
//Se nao achar nada, lança essa mensagem
if (empty($result)) { 
   echo "Nenhum registro encontrado.";
}

while($row = mysql_fetch_array($result)) {
    echo $row['id'].' '.$row['nome'].'<br>';	 
 }

 

A msg de erro.

 

Nenhum registro encontrado.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\karateca\karateca\chave\5.php on line 31

 

A linha 31 era esta

while($row = mysql_fetch_array($result)) {

 

Da forma que você me passou ta ok, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.