Ir para conteúdo
Fórum Script Brasil
  • 0

Consulta com Combobox (select)


mm_edilson

Pergunta

Amigos, não sei nem engatinhar mas já quero correr. Tenho um BD com cadastro dos membros de uma igreja. Um dos campos da tabela, é "status", no qual diz se é membro ativo, inativo, impossibilitado, falecido, etc.

Quero colocar uma combobox (select)  já preenchida com todas as possibilidades de status, e quando o usuário selecionar um linha, filtrar e mostrar somente os dados cujo status seja igual ao selecionado. 

Além disso, coloquei duas opções a mais no combobox, uma para "membros", que pega mais de um status, e também outra para não membros, que pega mais de um status.

Nessa parte, da linha 76,

while($dado = $pega_vazio ->fetch_array()){ ?>

Não sei o que colocar no lugar do $pega_vazio. Quero que entre aqui o que foi selecionado no combobox.

E no mais, o código não funcionou. Ou seja, não retorna nenhum resultado. 

Se puderem dar uma ajuda, se estou no caminho certo, ou se devo começar de novo por outro caminho, fico muito grato.

 

Eis o código inteiro da página

<?php
include("conecta.php");

$sql_vazio = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas order by Nome";
$pega_vazio = $mysqli ->query($sql_vazio) or die ($mysqli ->error);
$sql_membros = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Ativo') or ('Inativo') or ('Ausente') or ('Impossibilitado') or ('Sob Disciplina') ORDER BY Nome";
$pega_membros = $mysqli ->query($sql_membros) or die ($mysqli ->error);
$sql_naomembros = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Filho de Membro') or ('Visitante') or ('Transferido') or ('Desligado') or ('Falecido') ORDER BY Nome";
$pega_naomembros = $mysqli ->query($sql_naomembros) or die ($mysqli ->error);
$sql_ativo = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Ativo') ORDER BY Nome";
$pega_ativo = $mysqli ->query($sql_ativo) or die ($mysqli ->error);
$sql_inativo = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Inativo') ORDER BY Nome";
$pega_inativo = $mysqli ->query($sql_inativo) or die ($mysqli ->error);
$sql_ausente = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Ausente') ORDER BY Nome";
$pega_ausente = $mysqli ->query($sql_ausente) or die ($mysqli ->error);
$sql_impossibilitado = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Impossibilitado') ORDER BY Nome";
$pega_impossibilitado = $mysqli ->query($sql_impossibilitado) or die ($mysqli ->error);
$sql_sobdisciplina = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Sob Disciplina') ORDER BY Nome";
$pega_sobdisciplina = $mysqli ->query($sql_sobdisciplina) or die ($mysqli ->error);
$sql_filhodemembro = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Filho de Membro') ORDER BY Nome";
$pega_filhodemembro = $mysqli ->query($sql_filhodemembro) or die ($mysqli ->error);
$sql_visitante = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Visitante') ORDER BY Nome";
$pega_visitante = $mysqli ->query($sql_visitante) or die ($mysqli ->error);
$sql_transferido = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Transferido') ORDER BY Nome";
$pega_transferido = $mysqli ->query($sql_transferido) or die ($mysqli ->error);
$sql_desligado = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Desligado') ORDER BY Nome";
$pega_desligado = $mysqli ->query($sql_desligado) or die ($mysqli ->error);
$sql_falecido = "SELECT Cod,Nome,Tel,Cel,Email,DtNasc,Status FROM CadPessoas WHERE 'Status' = ('Falecido') ORDER BY Nome";
$pega_falecido = $mysqli ->query($sql_falecido) or die ($mysqli ->error);

if(!empty($_POST['bt_enviar'])) 
{
$vazio = (empty($_POST['']))? 'null' : $_POST[''];
$membro = (empty($_POST['Membros']))? 'null' : $_POST['Membros'];
$naomembro = (empty($_POST['Não Membros']))? 'null' : $_POST['Não Membros'];
$ativo = (empty($_POST['Ativos']))? 'null' : $_POST['Ativos'];
$inativo = (empty($_POST['Inativos']))? 'null' : $_POST['Inativos'];
$ausente = (empty($_POST['Ausentes']))? 'null' : $_POST['Ausentes'];
$impossibilitado = (empty($_POST['Impossibilitados']))? 'null' : $_POST['Impossibilitados'];
$sobdisciplina = (empty($_POST['Sob Disciplina']))? 'null' : $_POST['Sob Disciplina'];
$filhodemembro = (empty($_POST['Filhos de Membro']))? 'null' : $_POST['Filhos de Membro'];
$visitante = (empty($_POST['Visitantes']))? 'null' : $_POST['Visitantes'];
$transferido = (empty($_POST['Transferidos']))? 'null' : $_POST['Transferidos'];
$desligado = (empty($_POST['Desligados']))? 'null' : $_POST['Desligados'];
$falecido = (empty($_POST['Falecidos']))? 'null' : $_POST['Falecidos'];
}
?>


<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    </head>
    <body><center>
       <br><br>

<form action="" method="post">
<span></span>
 <select name="consultaStatus" id="consultaStatus">
                    <option value=""></option>
                    <option value="Membros">Membros</option>
                    <option value="Não Membros">Não Membros</option>
                    <option value="Ativo">Ativo</option>
                    <option value="Inativo">Inativo</option>
                    <option value="Ausente">Ausente</option>
                    <option value="Impossibilitado">Impossibilitado</option>
                    <option value="Sob Disciplina">Sob Disciplina</option>
                    <option value="Filho de Membro">Filho de Membro</option>
                    <option value="Visitante">Visitante</option>
                    <option value="Transferido">Transferido</option>
                    <option value="Desligado">Desligado</option>
                    <option value="Falecido">Falecido</option>
                </select><br>
                <input type="submit" name="bt_enviar" value="buscar" /><br />
<BR>
 <table border=0">

           <tr bgcolor="blue" align="center" <div style="font-size: 18px; font-weight: bold; color: white;">
               <td valign="middle"><img border="0" src="img/cod.png" width="80" height="25"></td>
               <td valign="middle"><img border="0" src="img/nome.png" width="80" height="25"></td>
               <td valign="middle"><img border="0" src="img/tel.png" width="100" height="25"></td>
               <td valign="middle"><img border="0" src="img/cel.png" width="100" height="25"></td>
               <td valign="middle"><img border="0" src="img/email.png" width="80" height="25"></td>
               <td valign="middle"><img border="0" src="img/dtnasc.png" width="130" height="25"></td>
               <td valign="middle"><img border="0" src="img/status.png" width="100" height="25"></td>
               <td valign="middle"><img border="0" src="img/acao.png" width="100" height="25"></td>
           </tr>
           
           <?php 
           
            while($dado = $pega_vazio ->fetch_array()){ ?>

           <tr style="cursor:default" onMouseOver="javascript:this.style.backgroundColor='#B0E0E6'" onMouseOut="javascript:this.style.backgroundColor=''">
               <td><?php echo $dado["Cod"]; ?></td>
               <td><?php echo $dado["Nome"]; ?></td>
               <td><?php echo $dado["Tel"]; ?></td>
               <td><?php echo $dado["Cel"]; ?></td>
               <td><?php echo $dado["Email"]; ?></td>
               <td><?php echo date("d/m/Y", strtotime($dado["DtNasc"])); ?></td>
               <td><?php echo $dado["Status"]; ?></td>
               <td><a href="dadoscompletos.php?codigo=<?php echo $dado["Cod"]; ?>" target="_blank">Dados Completos</a>
               </td>
           </tr>
           <?php } ?>
           
       </table>
        </center> 
    </body>
   
</html>

 

Editado por mm_edilson
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Trabalhando no problema:

1) o que é status?

Status é apenas um rótulo para identificar o irmão. Basicamente só tem dois irmãos, o que lembra de trazer a oferta, vamos chamá-lo de adimplente, e o que esquece de trazer a oferta, o inadimplente.

2) como criar uma caixa de combinação com o status?

<body style="width:500px;margin:0 auto">
<div style=height:50px></div>
<?php
$mysqli=new mysqli("localhost","root","","astudy");
$query=$mysqli->query("select status from tbpessoa group by status");
echo "<select name=status><option>Selecione tipo de irmão</option>";
while($row=$query->fetch_array()){
    echo "<option>".$row[0]."</option>";}
echo "</select>";

3) Ao invés da caixa de combinação mostrar apenas dois status, ele mostra uma opção vazia. Certamente isso é obra daquele safado do irmão Murphy, ele esqueceu de cadastrar o cliente, perdão, o irmão. Para "tapar" essa linha vazia, vamos modificar o programa, onde houver o status vazio vamos chamá-lo de verificar, assim:

<body style="width:500px;margin:0 auto">
<div style=height:50px></div>
<?php
$mysqli=new mysqli("localhost","root","","astudy");
$query=$mysqli->query("select status from tbpessoa group by status");
echo "<form>";
echo "<select name=status onchange=submit()><option>Selecione tipo de irmão</option>";
while($row=$query->fetch_array()){
    if(empty($row[0])){$status="verificar";}else{$status=$row[0];}
    echo "<option>$status</option>";}
echo "</select></form>";

4) Depois de escolher o status, fazer uma relação dos irmãos correspondentes. E ao selecionar um dos irmãos da lista, ver todo o cadastro dele.

astudy.php

<body style="width:500px;margin:0 auto">
<div style=height:50px></div>
<?php
$mysqli=new mysqli("localhost","root","","astudy");
if(empty($_GET)){
    $query=$mysqli->query("select status from tbpessoa group by status");
    echo "<form>";
    echo "<select name=status onchange=submit()><option>Selecione tipo de irmão</option>";
    while($row=$query->fetch_array()){
        if(empty($row[0])){$status="verificar";}else{$status=$row[0];}
        echo "<option>$status</option>";}
    echo "</select></form>"; exit;}
if(isset($_GET['status'])){
    $status=$_GET['status'];
    echo "<h2>$status</h2>";
    if($status=="verificar"){$h4="imprimir para o irmão Murphy";}
    if($status=="adimplente"){$h4="merecem uma oração";}
    if($status=="inadimplente"){$h4="precisam de muitas admoestações";}
    echo "<h4>$h4</h4>";
    if($status=="verificar"){
        $query=$mysqli->query("select codp,pessoa,status from tbpessoa where status is null");
    }else{
        $query=$mysqli->query("select codp,pessoa,status from tbpessoa where status='$status'");}
    while($row=$query->fetch_assoc()){
        echo "<a href=?irmao=".$row['codp'].">".$row['pessoa']."</a><br>";}
    echo "<p>";
    echo "<input type=submit value=voltar onclick=location.replace('astudy.php')>";
    exit;}
if(isset($_GET['irmao'])){
    $codp=$_GET['irmao'];
    $query=$mysqli->query("select * from tbpessoa where codp=$codp");
    $row=$query->fetch_assoc();
    var_dump($row);
    echo "<p>";
    echo "<input type=submit value=voltar onclick=location.replace('astudy.php')>";}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...