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

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

Aceitar