Célio A. 4 Denunciar post Postado Dezembro 19, 2011 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
Matias Rezende 50 Denunciar post Postado Dezembro 20, 2011 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
Célio A. 4 Denunciar post Postado Dezembro 20, 2011 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