Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dougb60

condição 'else'

Recommended Posts

Bom dia pessoal,

 

sou novato no campo da programação, principalmente em PHP, e estou tendo problemas com uma condição 'else'.

estou desenvolvendo um sistema bem simples para controle de estoque de tonner que usamos aqui na empresa, é um sistema

bem simples mesmo, ele basicamente armazena o numero de entrada, saida, e saldo em estoque dos produtos. no código abaixo

se a pesquisa corresponde aos parametros da condição ela me retorna o resultado esperado, porém se não, ela simplesmente ignora o 'else' e não retorna nada. Provavelmente é algum erro bobo que estou cometendo, mas não consegui identificar.
<?php 						        #valores do formulario      $tipo = $_POST["retorno"];      $nome = $_POST["select"];      $data = $_POST["data"];			        #cria as query's                            $queryE = "SELECT * FROM entrada WHERE data = '$data' AND produto = '$nome'";      $queryS = "SELECT * FROM saida WHERE data = '$data' AND produto = '$nome'";        #valida qual query realizar      if ($tipo == "entrada"){        $rs = mysqli_query($dbc, $queryE);    }      elseif ($tipo == "saida"){        $rs = mysqli_query($dbc, $queryS);    }            else {    echo "Failed to connect to MySQL: (" . $dbc->connect_errno . ") " . $dbc->connect_error;}?>                <!-- Cria cabeçalho TABLE-->      <table border="1">        <tr>          <th>Nome do Produto</th>          <th>Quantidade em estoque</th>        </tr>                   <?php           #Retorna valor da query      while ($row = Mysqli_fetch_array($rs)) {        if($tipo == "entrada")  {        echo "<tr><td>".$row[0]."</td>"."<td>".$row[1]."</td></tr>";                }        elseif($tipo == "saida" ){        echo "<tr><td>".$row[0]."</td>"."<td>".$row[1]."</td></tr>";      }                elseif (($tipo == "saldo") && $row > 0) {        echo "Sairam do estoque ".$row ['total']. " unidades de ".$nome."<br/>";       }        else{         echo "Nenhum registo encontrado";        }    } 			?>           </table>           <a href="pesquisa.php">Retornar para a pesquisa</a>           </div>        </div>        </div>

ps: o ultimo 'elseif' não tem utilidade ainda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Por que você não cria uma classe para gerenciar tudo isso?

Orientado a Objeto fica mais fácil de você dar manutenção ao código.

 

Ta aí seu código um pouco melhorado.

<?php
#valores do formulario
$tipo = $_POST["retorno"];
$nome = $_POST["select"];
$data = $_POST["data"];

$_tipo = ($tipo == 'saida') ? 'saida' : 'entrada';

$queryS = "SELECT * FROM $_tipo WHERE data = '$data' AND produto = '$nome'";

$rs = mysqli_query($dbc, $queryS);

if (!$rs) {
    echo "Failed to connect to MySQL: (" . $dbc->connect_errno . ") " . $dbc->connect_error;
}
?>
<!-- Cria cabeçalho TABLE-->
<table border="1">
    <tr>
        <th>Nome do Produto</th>
        <th>Quantidade em estoque</th>
    </tr>   
    <?php
#Retorna valor da query
    while ($row = Mysqli_fetch_array($rs)) {
        #pelo que vi, o "saida" e "entrada", são os mesmos dados, pra que colocar em uma condição?
        echo "<tr><td>" . $row[0] . "</td>" . "<td>" . $row[1] . "</td></tr>";
        
        if (($tipo == "saldo") && $row > 0) {
            echo "Sairam do estoque " . $row ['total'] . " unidades de " . $nome . "<br/>";
        }
    }
    ?>
</table>

<a href="pesquisa.php">Retornar para a pesquisa</a> 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Rodrigo Bigas
      Olá colegas, 
      Desenvolvi um sistema simples de boletim escolar. Conforme os dados são inseridos nas textfields ao clicar no botão Resultado, deverá mostrar em uma JTable. O problema é que a última coluna (resultado) da JTable tem que estar dentro de uma condição if/else para setar se o aluno está "aprovado", "em recuperação" ou "reprovado conforme a condição". Estou com dificuldades em descobrir qual é o método correto que seta este resultado de forma dinâmica. Segue os prints:
       
      Conforme o código e o print acima, o sistema funciona somente para a primeira linha, porque está setando de forma estática, obtendo os valores do índice e coluna, qual seria o método para setar o valor de forma dinâmica do índice e coluna?
    • Por 4Unknow
      Bom dia comunidade Imasters.

      Venho aqui tratar de um problema dúvida que estou tendo com um layout que estou tentando usar o formulário php dele.
      Quando clico em enviar ele me enviar para um arquivo .php  (assets/vendor/simple-forms/sendmail.php)

      Ele não envia o e-mail, acredito que deveria aparecer uma mensagem que o contato foi enviado corretamente.
      Vou deixar os arquivos aqui em anexo quem puder me ajudar nessa, ficaria muito grato.
       
      Link Website (wetransfer.com)
    • Por stefanyprs
      //modelo.html <!DOCTYPE html> <html lang="pt-br"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>Hora do dia</title>     <link rel="stylesheet" href="estilo.css"> </head> <body onload="carregar()">     <header>         <h1> Hora do dia </h1>         </h1>     </header>     <section>         <div id="msg">             msg         </div>         <div id="foto">             <img class="imagem" src="fotomanha.jpg" alt="foto do dia">         </div>     </section>     <footer>         <p>&copy; Rodapé </p>     </footer>     <script src="script.js"></script> </body> </html>   //script.js function carregar () {     var msg = window.document.getElementById('msg')     var img  = window.document.getElementsByClassName('imagem')      var data = new Date()     var hora = data.getHours()          msg.innerHTML = 'Agora são ' + hora + ' horas'          if (hora >= 0 && hora < 12){         //Bom dia         img.src = 'fotomanha.jpg'         } else if (hora >= 12 && hora < 18){         //Boa tarde         img.src = 'fototarde.jpg'      } else {         //Boa noite         img.src = 'fotonoite.jpg'     } }   //estilo.css body{     background-color: aqua;     font: normal 15pt Arial; } header{     color:rgb(255, 255, 255);     text-align: center; } section{     background: white;     border-radius: 10px;     padding: 15px;     width: 500px;     margin:auto;     box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.329);      } footer{     color:white;     text-align: center;     font-style: italic;   } div{     text-align: center; } .imagem{     width: 500px;    /* largura da imagem */     height: 350px;   /*  altura da imagem  */     margin-top: 10px; /* margem do topo */ }
    • Por joagostini
      Olá, sou iniciante, e estou fazendo, como exercício, o jogo da velha. 'Desenvolvi' uma rotina de escolha de nível do jogo (serão 3 níveis) que deve aguardar a escolha do usuário para o programa prosseguir. Mas acho que não entendi direito como o javascript funciona, pois o que fiz não funciona e não encontrei uma solução (talvez não saíba como pesquisar corretamente o assunto na web).

      O começo do HTML (que é pouco) onde está um select para escolha do nível é este:
      <body>     <div id="dvmenu">         <button onclick="iniciar()">Iniciar Jogo</button>         <p><br></p>         <div id="dvQuemComeca">             <label for="nivel">Escolha o nivel:</label>             <select id="nivel" onChange='atualiza()'>                 <option value=0 selected>Escolha um nível</option>                 <option value=1>Nível 1 - Brincadeira</option>                 <option value=2>Nivel 2 - Surpresa</option>                 <option value=3>Nível 3 - Desafio</option>             </select>         </div>         <div id="jogador" class="jogador"></div>         <div id="vencedor" class="jogador"></div>     </div>  
      O código JS é este:
      //INÍCIO VEM DE LOAD function iniciar() {     casela = document.querySelectorAll('div[id^="p"]');     for (let cas of casela) {         cas.innerHTML = '';     }     for (let i = 0; i < 9; i++){        tab = tab;     }     console.log(tab);     nivel = 0;      msg = '';     qtosLancesJog = 0;     sorteiaJogador();     //até aqui funcionou direito } //-------------------------------------------------------------------- //ESCOLHA DO NÍVEL DO JOGO function atualiza(){     let selecao = document.querySelector('#nivel');     let opcao = selecao.options[selecao.selectedIndex];     return opcao.value;    }   //--------------------------------------------------------------------   //SORTEIA QUEM VAI COMEÇAR JOGANDO //função para definir o jogador que inicia o tab function sorteiaJogador() {//funcionou direito     let quemComeca = parseInt(Math.floor(Math.random() * 2));     if (quemComeca == 0) {         msg = 'Computador';         //setTimeout(lanceCpu, 2000);//dá um intervalo antes do computador realizar o 1 lance         lanceCpu();     } else msg = 'Humano';//neste caso a rotina espera que o jogador clique no tabuleiro, qdo roda a função lancetab(pos)         lanceHumano();     document.querySelector('#jogador').innerHTML = `<br>O ${msg} começa!`; } //--------------------------------------------------------------------   //ESCOLHA RANDÔMICA, NIVEL = 1, Da POSIÇÃO DO LANCE DA CPU NO tabULEIRO function jogouCpu(){//funcionou direito //nível 1 modo randômico pos = Math.floor(Math.random() * 9); return pos; }   //função humana function lanceHumano(){     console.log('Estou na função humana');     do {         nivel = atualiza();         console.log(nivel);     } while (nivel === 0);     console.log(nivel + ' passei direto'); }  
      O problema está nesse do...while da function lanceHumano(). Segundo entendi, ele prosseguiria apenas quando nivel!== 0, caso contrário, ficaria 'preso' até o momento que o usuário escolhesse uma das opções. Pelo HTML percebesse que setei o select para value=0. Mas ele nem se dá ao trabalho de esperar um miléssimo de segundo, segue em frente com o valor que tiver, no caso 0. O while  não tem efeito. Essa minha perspectiva está errada? Se sim, o que fazer? (paradigma funcional, await?) Obrigado.
      P.S.. No código tem uns conole.logs que servem watch-dogs para ajudar a entender por onde vão as rotinas.
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
    • Por biakelly
      Olá Tudo bem?
       
      Poderiam me ajudar com a seguinte condição:
      <?php if ($row['facebook'] != "") { echo '<a class="btn btn-dark btn-social mx-2" href="<?php echo $row['facebook']; ?>"><i class="fab fa-facebook-f"></i></a>'; } else { echo ''; } ?>  
      Estou recebendo o seguinte erro:
      Parse error: syntax error, unexpected 'facebook' (T_STRING), expecting ';' or ',' in C:\xampp\htdocs\biazinha\inicial.php on line 371
       
       
      A linha 371 é essa:
      echo '<a class="btn btn-dark btn-social mx-2" href="<?php echo $row['facebook']; ?>"><i class="fab fa-facebook-f"></i></a>';  
       
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.