Consulta banco de dados PHP - Sql diferentes

28/11/2019

0

Bom dia, amigos. Estou com uma dúvida cruel de iniciante.

Tenho um BD com informações dos membros de uma igreja.

Criei uma página para exibir essas informações. Nessa página coloquei 2 div, uma para consulta por nome, outra para consulta por sexo. Depois pretendo acrescentar outras consultas. Para exibir a div, utilizo um select. Exemplo, se quiser pesquisar por nome, clico em "nome" no "select" e ele exibe a div que contém o formulário com um text área e um submit para exibir os registros com aquele nome. Se clico em "sexo" ele esconde a div "nome" e exibe a div "sexo" onde tem um radio group com as opções M e F, e um botão submit.

Pois bem, o meu problema é com o PHP, que terá um sql diferente para nome e para sexo. E não sei como fazer essas variáveis, se é com "if" ou se é uma variável para cada consulta...

Meu código está assim:

<div id='pai'>  

<div id='nome'>
    <form method="POST">
        Pesquisar:<input type="text" name="nome" placeholder="Nome o parte do nome">
        <input type="submit" value="Pesquisar">  |  <a href="<?php echo $pesquisar; ?>"<b>Exibir todos os registros</b></a>
            </form><br><br>
</div>

<div id='sexo'>
    <form method="POST">
        Selecionar:<input type="radio" name="sexo" value="M" />
Masculino   <input type="radio" name="sexo" value="F" />Feminino   
        <input type="submit" value="Pesquisar">
        
    </form><br><br>
</div> 
</div> 


E o PHP fiz assim, mas não deu certo:

<?php
    
    include("conecta.php"); // caminho do seu arquivo de conexão ao banco de dados
    
    
$nome = $_POST['nome'];
$sexo = $_POST['sexo'];
$consulta = "SELECT * FROM `CadPessoas` WHERE (`Nome` LIKE '%$nome%') AND ( `Status` = 'Ativo' OR `Status` = 'Inativo' ) ORDER BY `Nome`";
    $con      = $conexao->query($consulta) or die($conexao->error);
$consulta1 = "SELECT * FROM `CadPessoas` WHERE (`Sexo` = '$sexo') AND ( `Status` = 'Ativo' OR `Status` = 'Inativo' ) ORDER BY `Nome`";
    $con1      = $conexao->query($consulta1) or die($conexao->error);
?>


Quando consulto por nome, retorna certinho os nomes. Quando consulto por sexo, retorna todos os registros. Não filtra. Alguém pode ajudar?
Edilson Santiago

Edilson Santiago

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