Query Select Option PHP

2

How to make a query with select option that the user can choose?

No frontend:

<form method="post" action="Procurarquery.php"  enctype="multipart/form-data">
    <span class="LABEL4CSS" id="LABEL4">Estado</span>
    <select name="estado" size="1" width="195" class="COMBOFABCSS" id="COMBOFAB" tabindex="1">
        <option value="Indiferente">Indiferente</option>
        <option value="Autorizado">Autorizado</option>
        <option value="Condicionado">Condicionado</option>
        <option value="Não Autorizado">Não Autorizado</option>
    </select>

No backend:

 if (isset($_POST['estado'])) {
     switch($_POST['estado']) {
             case 'Indiferente':
                 $sql = "QUERYYYYYY";
                 $qr = mysql_query($sql) or die(mysql_error());
                 break;
             case 'Autorizado':
                 $sql = "Query Autorizado";
                 $qr = mysql_query($sql) or die(mysql_error());
             break;

Now I have a question. If I want to put another ($ _POST ['Month']) How can I do to select STATUS and MES at the same time?

    
asked by anonymous 25.03.2014 / 18:44

2 answers

1

It depends a lot on what is selectable or not, what is required, etc.

From what I realized from the question I would do this:

    $sql = "SELECT * FROM bd_table";

    if (isset($_POST['estado'])) {
       switch($_POST['estado']) {
          case 'Indiferente':
             $sql .= " WHERE estado = 1";
             break;
          case 'Autorizado':
             $sql .= " WHERE estado = 2";
              break;
       }
    }

    if (isset($_POST['mes'])) {
        if(isset($_POST['estado'])) 
           $sql .= " AND "; 
        else
           $sql .= " WHERE ";

        $sql .= "mes = '".$_POST['mes']."'";
    }

    $qr = mysql_query($sql) or die(mysql_error());
    
09.04.2014 / 15:46
0
//define a variável mes
$qmes = "";
//se estiver preenchida adiciona valor
if (isset($_POST['mes'])) {
    $qmes = " AND col_mes = '".$_POST['mes']."'"; 
}

if (isset($_POST['estado'])) {
     switch($_POST['estado']) {
             case 'Indiferente':
                 $sql = "SELECT * FROM bd_table WHERE col_estado = 1".$qmes;
                 break;
             case 'Autorizado':
                 $sql = "SELECT * FROM bd_table WHERE col_estado = 2".$qmes;
             break;
// tira o comando de dentro do case
                 $qr = mysql_query($sql) or die(mysql_error());

}

If I understand, this should help

    
09.04.2014 / 15:43