Ir para conteúdo
Diego Carlos

Parar depois do UPDATE

Recommended Posts

Boa Noite, 

 

Tenho um código que quero , que faça o seguinte.

Tenho um update que se o valor dentro do banco for < 0 ele pare e não de continuidade, senão ele continua e da um insert no banco

 

segue código a baixo

 

<?php 


if (isset($_POST['Salvar'])) {

              $Umedi = $_POST['ff_medi'];
              $dispensa = $_POST['ff_qtda'];


            if (mysql_query("UPDATE fmedicamentos SET FM_EST=FM_EST - '$dispensa' WHERE FM_MEDI='$Umedi' and ((FM_EST - '$dispensa') >= 0)")) {
              
              $iff_data = $_POST['ff_data'];
              $iff_medi = $_POST['ff_medi'];
              $iff_qtda = $_POST['ff_qtda'];
              $iff_qmes = $_POST['ff_qmes'];
              $iff_poso = $_POST['ff_poso'];
              $iff_resp = $_POST['ff_resp'];
              $iff_func = $_POST['ff_func'];
              $iff_cone = $_POST['ff_cone'];
              $iff_nome = $_POST['ff_nome'];


                            if ($iff_data == "") {
                      $msg = "<span class='aviso'><b>Atenção!</b> Campo Data esta vazio!</span>";

                      }else if ($iff_medi == ""){
                        $msg = "<span class='aviso'><b>Atenção!</b> Campo Medicamento esta vazio!</span>";

                      }else if ($iff_qtda == ""){
                        $msg = "<span class='aviso'><b>Atenção!</b> Campo Quantidade esta vazio!</span>";

                      }else{
                        $inseri = mysql_query("INSERT INTO fficha (FF_DATA, FF_MEDICAMENTO, FF_QTDA, FF_QTDAMES, FF_POSOLOGIA, FF_RESP, FF_FUNC, FF_CONECT, FF_NOME) VALUES ('$iff_data', '$iff_medi', '$iff_qtda', '$iff_qmes', '$iff_poso', '$iff_resp', '$iff_func', '$iff_cone', '$iff_nome')");

                      }


           }else{




              echo "<span class='aviso'><b>Atenção!</b> Quantida Inserida Maior que Estoque Atual!</span>";
           }
          }


    ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguns problemas com o seu código:

  • Funções mysql_* foram descontinuadas no PHP 5.5 e removidas no PHP 7 (utilize PDO ou MySQLi);
  • Um update sempre retornará TRUE, mesmo que não altere nenhum registro, quando o comando for executado e não possuir erros de sintaxe.

 

Ao ponto principal, se existe um evento, conhecido/esperado, que depende de um tratamento especial, considere tratá-lo como uma Exception (exceção)

throw new RuntimeException("Quantida Inserida Maior que Estoque Atual");

E, para capturar a exception e tratá-la, utilize try/catch:

try
{
    
}
catch(\RuntimeException $exception)
{
    echo $exception->getMessage();
}

Exception são estremamente poderosas e são parte natural do fluxo de trabalho do software.

 

Na realidade, todos os locais aonde você imprime uma mensagem de atenção, pode ser usada uma exception.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por Responder Gabriel

 

Então eu sei que da certo com pdo porem meu projeito ja esta grande de mais teria que mudar tudo pra isso 

Estou procurando a solução para isso, mas vlw pela ajuda

Editado por Gabriel Heming
remover o quote

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por MAKAVELIQUE
      Pessoal, imaginem a seguinte situação: o usuário A clica no botão enviar no mesmo instante que o usuário B, caso a ação do sql seja um comando update no mesmo campo, id=7 por exemplo e isso acontecer exatamente no mesmo instante, ocorre perca de dados? 
      <?php $update = "UPDATE br_gang SET i='$i', data= NOW() WHERE id='$id'"; $query = mysqli_query($update, $conn) or die (mysqli_error($conn)); if($update==true){ echo "<script>alert ('DADOS SALVOS COM SUCESSO, BOA SORTE!');</script>"; } ?> Se isso acontecer e ocorrer perca de dados, qual o procedimento possível para resolver o problema?
    • Por kaiquefigui
      sempre que uso o comando 'insert into cliente values...' diz que minha query foi atualiza e as linhas foram afetadas porem quando utilizo o comando 'desc cliente' não vejo alterações, como posso resolver esse problema?
      CREATE TABLE CLIENTE( NOME VARCHAR(30), SEXO CHAR(1), CPF CHAR(11), EMAIL VARCHAR(50), TELEFONE VARCHAR(30), ENDEREÇO VARCHAR(100) ); SHOW TABLES; DESC CLIENTE; INSERT INTO CLIENTE VALUES('KAUAN','M','23453678911','KAUAN@HOTMAIL.COM','254896534','ANTONIO HERDEIRO - SÃO PAULO - SP'); INSERT INTO CLIENTE VALUES('ADRIANA','F','24587630894','ADRIANA@HOTMAIL.COM','48652479','ANTONIO HERDEIRO - SÃO PAULO - SP'); INSERT INTO CLIENTE VALUES('KAIQUE','M','34221176809','KAIQUE@HOTMAIL.COM',NULL,'ANTONIO HERDEIRO - SÃO PAULO - SP'); INSERT INTO CLIENTE(NOME,SEXO,CPF,EMAIL,TELEFONE,ENDEREÇO) VALUES('MARCELA','F','15489652011','MARCELO@HOTMAIL.COM','245826157','ANTONIO HERDEIRO - SÃO PAULO - SP');  
    • Por GabrielB3r
      Bom dia,
      estou tentando criar um sistema de empréstimo e devolução de documentos.
      Funciona da seguinte forma:
      A pessoa tem o opção de cadastrar novos documentos,os quais são inseridos da tabela "dossie_cadastrado", e ela pode cadastrar o empréstimo e a devolução do mesmo que ficam salvos na tabela "dossie_emprestimo".
      A parte de cadastro e empréstimo consegui fazer funcionar, meu problema é na hora de cadastrar a devolução. Preciso inserir a data atual no último cadastro de um determinado dossie na tabela "dossie_emprestimo".
       
      Tenho o seguinte código:
      if(isset($_POST["cod_cad"])){         $cod_cad = $_POST["cod_cad"];         }          if(isset($_GET["cod_cad"])){         $cod_cad = $_GET["cod_cad"];     } $cod_cad = strip_tags($_POST['cod_cad']); $select_upd= mysqli_query($conexao_bd,"SELECT id_emp, data_emp from dossie_emprestimo where cod_cad='$cod_cad' ORDER BY data_emp desc limit 1") ; $sql_update="UPDATE dossie_emprestimo SET data_dev=CURDATE() WHERE id_emp='$id_emp'"; mysqli_query($conexao_bd, $sql_update);  
      quando eu rodo esse código separado no phpmyadmin, funciona normalmente, mas quando coloco no meu código ele não encontra o id_emp.
      id_emp - id de empréstimo, chave primaria com auto incremento.
      data_emp - data que foi realizado o empréstimo.
      cod_cad - código de cadastro, é o código que esta relacionado a tabela de cadastro, é o id do documento. ex: toda vez que o documento "20" for emprestado esse código sera "20".
       
    • Por ment0r
      Boa tarde amigos, tudo bem? Mais uma vez venho pedir o auxilio de vocês.
       
      Bom, estou desenvolvendo um sistema intranet pra uma empresa (php + firebird) e nele haverá uma página de cadastro de pedido; nela, o usuário digita a data da compra, a data de vencimento e vai listando os produtos - bem simples.
       
      Minha dúvida é a seguinte: como eu faço pra pra inserir vários produtos na mesma página e depois cadastrar tudo de uma vez? Peguei como exemplo uma tela do sistema de um amigo (não pode ser copiado, pois foi desenvolvido em Delphi).
       

       
      O usuário escolhe um produto e insere na lista, escolhe outro e insere na lista e assim por diante. No final ele cadastra todos. Minha dúvida não é nos procedimentos de cadastros (funções de banco e etc) é em como fazer a aparecer essa lista de produtos.
       
      Será que é com Jquey, Javascript... enfim... me deêm uma luz rsrs
       
      Muito obrigado desde já.
       
    • Por stefanys
      Estou desenvolvendo um trabalho voluntario para uma instituição, o site está praticamente pronto para funcionamento, no entanto uma pagina começou a dar erro
       
      SOLICITACAO.PHP
       
      <?php
      include "verifica.php";
              include "conexao.php";

              $usuario = $_SESSION['usuario_usuario'];
              $sql = mysqli_query($db,"SELECT * FROM login where email = '$usuario'");
              while($linha = mysqli_fetch_array($sql)){
                  $_SESSION['id_usuario']= $linha['id_login'];
                  $id_login = $linha['id_login'];
                  $nome = $linha['nome'];
                  $email = $linha['email'];
                  $telefone = $linha['telefone'];
                  $senha = $linha['senha'];
                  $foto = $linha['fotoperfil'];
              }
       if (isset($_POST['cadastrar'])) {
      $idade = $_POST['idade'];
      $endereco = $_POST['endereco'];
      $telefone = $_POST['telefone'];
      $motivo = $_POST['motivo'];
      $castracao = $_POST['castracao'];
      $seguranca = $_POST['seguranca'];
      $cuidados = $_POST['cuidados'];
      $espaco = $_POST['espaco'];
      $doacao = $_POST['doacao'];
      $vida_animal = $_POST['vida_animal'];
      $adaptacao = $_POST['adaptacao'];
      $ciencia = $_POST['ciencia'];
      $mudanca = $_POST['mudanca'];
      $horario = $_POST['horario'];
      $visitas = $_POST['visitas'];
      $acesso = $_POST['acesso'];
      $outro_animal = $_POST['outro_animal'];
      $confirmar = $_POST['confirmar'];
      $id_login = $linha['id_login'];
      $idanimal = $_POST['idanimal'];
             
                 $query =  mysqli_query($db, "INSERT INTO solicitacao (  endereco, telefone, motivo, castracao, seguranca, cuidados, espaco, doacao, vida_animal, adaptacao, ciencia, mudanca, horario, visitas, acesso, outro_animal, confirmar, id_login, idanimal, idade)  VALUES  ('".$endereco."', '".$telefone."','".$motivo."', '".$castracao."', '".$seguranca."', '".$cuidados."', '".$espaco."', '".$doacao."', '".$vida_animal."', '".$adaptacao."', '".$ciencia."',  '".$mudanca."','".$horario."', '".$visitas."', '".$acesso."', '".$outro_animal."', '".$confirmar."',  '".$id_login."', '".$idanimal."','".$idade."')");
                 
                 if($query){
                  echo "<script language='javascript' type='text/javascript'>alert('SUCESSO');window.location.href='perfilusuario.php';</script>";
                 }else{
                   echo"<script language='javascript' type='text/javascript'>alert('Desculpe! Tente novamente!');window.location.href='perfilusuario.php';</script>";
                 }
                 
       }
             
      ?>
       
      ELE ESTÁ APENAS INDO PARA A MENSAGEM DE ERRO, PRECISO DE AJUDA
×

Informação importante

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