Jump to content
Fórum Script Brasil
  • 0

erro no IF com select


o.igor
 Share

Question

Boa tarde

estou com problema no meu if ao chamar os dados.

Ele esta chamando somente uma opção do if (e mesmo assim de um jeito errado) ele deveria executar uma das 3 opções abaixo:

1 = >todos usuarios por data = se usuario vazio e data preenchida (so esta chamando essa e mesmo assim um usuario tem q estar selecionado, o que esta errado o usuario tinha que estar vazio)

2 = > usuario por data = usuario preenchido e data preenchida

3 = >so o usuario = usuario preenchido e data vazia todo o resto não retorna nada.

o codigo esta assim agora:

 

if (isset($_POST['busca']) && !empty($_POST['busca'])){
//todos usuarios por periodo
$sql = "SELECT * FROM assentamentos a, usuarios u, ocorrencias o, problemas p, localizacao l, instituicao i, sistemas s WHERE o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim' and a.responsavel = u.user_id and a.data = o.data_fechamento and p.prob_id = o.problema and o.local = l.loc_id and i.inst_cod = o.instituicao and s.sis_id = o.sistema ORDER BY o.numero DESC";
 
}
else if(isset($_POST['data_inicial']) && !empty($_POST['data_inicial']) and isset($_POST['data_final']) && !empty($_POST['data_final'])){
    
//so usuario 
$sql = "SELECT * FROM assentamentos a, usuarios u, ocorrencias o, problemas p, localizacao l, instituicao i, sistemas s WHERE u.nome = '$busca' and a.responsavel = u.user_id and a.data = o.data_fechamento and p.prob_id = o.problema and o.local = l.loc_id and i.inst_cod = o.instituicao and s.sis_id = o.sistema ORDER BY o.numero DESC";

}
else{

//usuario por periodo
$sql = "SELECT * FROM assentamentos a, usuarios u, ocorrencias o, problemas p, localizacao l, instituicao i, sistemas s WHERE o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim' and u.nome = '$busca' and a.responsavel = u.user_id and a.data = o.data_fechamento and p.prob_id = o.problema and o.local = l.loc_id and i.inst_cod = o.instituicao and s.sis_id = o.sistema ORDER BY o.numero DESC";
}

      print "<table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>";
     print "<tr class='tabela_cinza'>";
     print "<td align='center' colspan='10'><span class='texto_negrito'>Relat&oacute;rio Geral</span></td>";
     print "</tr>";
     print "<tr>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Número</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Técnico</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Problema</span></td>";
     print "<td align='center' width='16%'><span class='texto_negrito'>Descriçao do problema</span></td>";
     print "<td align='center' width='16%'><span class='texto_negrito'>Soluçao do Problema</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Área</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Unidade</span></td>";
     print "<td align='center' width='12%'><span class='texto_negrito'>Local</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Data inicial</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Data final</span></td>";
     print "</tr>";
     print "</table>";
      $qr = mysql_query($sql) or die(mysql_error());
     while ($linha = mysql_fetch_array($qr)) {
     print "<form action='' method='post' name='CadInfo' target='_parent' id='CadInfo'>";
     print "<table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>";
     print "<tr>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['numero']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['nome']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['problema']."</span></td>";
     print "<td align='center' width='16%'><span class='texto_center'>".$linha['descricao']."</span></td>";
     print "<td align='center' width='16%'><span class='texto_center'>".$linha['assentamento']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['sistema']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['inst_nome']."</span></td>";
     print "<td align='center' width='12%'><span class='texto_center'>".$linha['local']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['data_abertura']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['data_fechamento']."</span></td>";
     print "</tr>";
     print "</table>";
     print "</form>";
     }
 

Um ótimo final de semana a todos.

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

se $_POST['busca'] for combinado com $_POST['data_inicial'] ou $_POST['data_final'], sempre vai entrar no primeiro if
só não entra no primeiro if se $_POST['busca'] estiver vazio

Link to comment
Share on other sites

  • 0

bom dia wash esta tudo assim:

campo de busca:

<select name="busca" id="busca">
                <option></option>
                  <?php

  $sql = mysql_query("SELECT * FROM usuarios ORDER BY nome ASC"); 
        while ($linha = mysql_fetch_array($sql)) {
?>
                  <option value="<?php echo $linha['nome'];?>"> <?php echo $linha['nome'];?></option>
                  <?php } ?>
                </select>

*****************************************************************************

capos data:

<input type="text" name="data_inicial" onKeyUp="mascaraData(this);" maxlength="10" class="texto_negrito"/>

<input type="text" name="data_final" id="data_final" onKeyUp="mascaraData2(this);" maxlength="10" class="texto_negrito"/>

*********************************************************************************

e o meu sql esta assim ultimamente:

 if(isset($_POST['data_inicial']) && !empty($_POST['data_inicial']) && isset($_POST['data_final']) && !empty($_POST['data_final']))
 {

//so usuario 
$sql = "SELECT * FROM assentamentos a, usuarios u, ocorrencias o, problemas p, localizacao l, instituicao i, sistemas s WHERE u.nome LIKE '$busca' and a.responsavel = u.user_id and a.data = o.data_fechamento and p.prob_id = o.problema and o.local = l.loc_id and i.inst_cod = o.instituicao and s.sis_id = o.sistema ORDER BY o.numero DESC";
  
}

elseif (isset($_POST['busca']) && !empty($_POST['busca']) && $dmyinicio == $_POST['data_inicial'] && $dmyfim == $_POST['data_final']){

//todos usuarios por periodo
$sql = "SELECT * FROM assentamentos a, usuarios u, ocorrencias o, problemas p, localizacao l, instituicao i, sistemas s WHERE o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim' and a.responsavel = u.user_id and a.data = o.data_fechamento and p.prob_id = o.problema and o.local = l.loc_id and i.inst_cod = o.instituicao and s.sis_id = o.sistema ORDER BY o.numero DESC";

}
else{


//usuario por periodo
$sql = "SELECT * FROM assentamentos a, usuarios u, ocorrencias o, problemas p, localizacao l, instituicao i, sistemas s WHERE o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim' and u.nome LIKE '$busca' and a.responsavel = u.user_id and a.data = o.data_fechamento and p.prob_id = o.problema and o.local = l.loc_id and i.inst_cod = o.instituicao and s.sis_id = o.sistema ORDER BY o.numero DESC";
}

     //Tabela de impressao dos resultados
      print "<table width='100%' border='1' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>";
     print "<tr>";
     print "<td align='center' colspan='10'><span class='texto_negrito'>Relat&oacute;rio Geral</span></td>";
     print "</tr>";
     print "<tr>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Número</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Técnico</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Problema</span></td>";
     print "<td align='center' width='16%'><span class='texto_negrito'>Descriçao do problema</span></td>";
     print "<td align='center' width='16%'><span class='texto_negrito'>Soluçao do Problema</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Área</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Unidade</span></td>";
     print "<td align='center' width='12%'><span class='texto_negrito'>Local</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Data inicial</span></td>";
     print "<td align='center' width='8%'><span class='texto_negrito'>Data final</span></td>";
     print "</tr>";
     print "</table>";
      //Executa a Query         
      $qr = mysql_query($sql) or die(mysql_error());
     //Imprime os dados na tabela
     while ($linha = mysql_fetch_array($qr)) {
     print "<form action='' method='post' name='CadInfo' target='_parent' id='CadInfo'>";
     print "<table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>";
     print "<tr>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['numero']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['nome']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['problema']."</span></td>";
     print "<td align='center' width='16%'><span class='texto_center'>".$linha['descricao']."</span></td>";
     print "<td align='center' width='16%'><span class='texto_center'>".$linha['assentamento']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['sistema']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['inst_nome']."</span></td>";
     print "<td align='center' width='12%'><span class='texto_center'>".$linha['local']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['data_abertura']."</span></td>";
     print "<td align='center' width='8%'><span class='texto_center'>".$linha['data_fechamento']."</span></td>";
     print "</tr>";
     print "</table>";
     print "</form>";
     }//fim do while

Link to comment
Share on other sites

  • 0

Olá!

Que bom q já resolveu!

Eu estava reescrevendo o seu script de maneira a evitar algumas repetições.

Ah! Sempre que puder, use echo ao invés de print, o echo é mais rápido!

Sugiro que use <th></th> pra fazer o cabeçalho da tabela, pois já vêm com texto centralizado e em negrito, leia em: http://www.w3schools.com/tags/tag_th.asp

E não entendi porque ter uma tabela dentro de um formulário, que não tem nenhum campo de formulário... aquele formulário com name='CadInfo' faz algum sentido?

Veja como tava ficando:

<!doctype html>
<html>
    <head>
        <meta charset='utf-8'>
    </head>
    <body>
        <form method="post">
            
            <label>Busca:</label>
            <input type="text" name="busca"><br>
            <label>Data Inicial:</label>
            <input type="date" name="data_inicial"><br>
            <label>Data Final:</label>
            <input type="date" name="data_final"><br>
            <input type="submit" value="buscar">
        </form>
        <?php
//Conexão com o Banco de Dados
        $conexao = mysql_connect('localhost', 'root', '') or die('Não foi possí­vel conectar: ' . mysql_error());
//Conexão bem sucedida seleciona o BD
        $db_selected = mysql_select_db('scriptbrasil');

        $start_query = "SELECT * FROM
                assentamentos a, usuarios u, ocorrencias o, 
                problemas p, localizacao l, instituicao i, sistemas s 
                WHERE ";
        $end_query = " and a.responsavel = u.user_id 
            and a.data = o.data_fechamento 
            and p.prob_id = o.problema 
            and o.local = l.loc_id
            and i.inst_cod = o.instituicao 
            and s.sis_id = o.sistema 
            ORDER BY o.numero DESC";

        if (isset($_POST['busca']) && !empty($_POST['busca'])) {
//todos usuarios por periodo
            $middle_query = " o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim'";
        } elseif (isset($_POST['data_inicial']) && !empty($_POST['data_inicial']) && isset($_POST['data_final']) && !empty($_POST['data_final'])) {
//so usuario 
            $middle_query = " u.nome = '$busca'";
        } else {
//usuario por periodo
            $middle_query = " o.data_abertura BETWEEN '$ymdinicio' AND '$ymdfim' and u.nome = '$busca'";
        }

        echo "<table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>
<tr class='tabela_cinza'>
<td align='center' colspan='10'><span class='texto_negrito'>Relatório Geral</span></td>
</tr>
<tr>
<th width='8%'>Número</th>
<th width='8%'>Técnico</th>
<th width='8%'>Problema</th>
<th width='16%'>Descriçao do problema</th>
<th width='16%'>Soluçao do Problema</th>
<th width='8%'>Área</th>
<th width='8%'>Unidade</th>
<th width='12%'>Local</th>
<th width='8%'>Data inicial</th>
<th width='8%'>Data final</th>
</tr>
</table>";
        $query = $start_query . $middle_query . $end_query;
        echo '<pre>Query montada: ';
        print_r($query);
        echo '</pre>';
        $qr = mysql_query($query) or die(mysql_error());
        while ($linha = mysql_fetch_assoc($qr)) {
            echo "<form action='' method='post' name='CadInfo' target='_parent' id='CadInfo'>
<table width='100%' border='0' align='center' cellpadding='1' cellspacing='2' class='full_table_list'>
<tr>
<td align='center' width='8%'><span class='texto_center'>$linha[numero]</span></td>
<td align='center' width='8%'><span class='texto_center'>$linha[nome]</span></td>
<td align='center' width='8%'><span class='texto_center'>$linha[problema]</span></td>
<td align='center' width='16%'><span class='texto_center'>$linha[descricao]</span></td>
<td align='center' width='16%'><span class='texto_center'>$linha[assentamento]</span></td>
<td align='center' width='8%'><span class='texto_center'>$linha[sistema]</span></td>
<td align='center' width='8%'><span class='texto_center'>$linha[inst_nome]</span></td>
<td align='center' width='12%'><span class='texto_center'>$linha[local]</span></td>
<td align='center' width='8%'><span class='texto_center'>$linha[data_abertura]</span></td>
<td align='center' width='8%'><span class='texto_center'>$linha[data_fechamento]</span></td>
</tr>
</table>
</form>";
        }
        ?>
    </body>
</html>

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...