Jump to content
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>";
           }
          }


    ?>

 

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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

Edited by Gabriel Heming
remover o quote

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Samuel Pietro
      Estou com a seguinte situação.
       
      Preciso que o Update só aconteça nos campos vazios. Por exemplo, tenho no CSV 
      id;a;b;c 1;1;;3 1;1;2;;  
      |id | a | b | c |
      | 1 | 1 |    | 3 |
      | 1 | 1 | 2 |  |
       
      Na primeira linha tenho o campo da coluna b em branco, logo ele irá inserir no banco de dados o conteúdo da primeira linha, quando ele ler a segunda linha irá ver que a minha key, que é a coluna id, já existe e irá atualizar, o problema é que eu preciso que  atualize apenas os campos em branco, pois se atualizar todos os campos ele iria substituir o campo da coluna c que ficaria em branco !
       
      O código que fiz até o momento! 
      INSERT INTO tabela (id, a, b, c) VALUES ('$column[0]','$column[1]','$column[2]','$column[3]') on duplicate key UPDATE id='$column[0]',a='$column[0]', b='$column[0]', c='$column[0]'  
      Gostaria da ajuda de vocês para saber como posso adequar esse código na minha necessidade, seria tipo adcionar is null UPDATE.. sei lá, tentei várias opções mas sem sucesso ainda! 
       
       
       
       
    • By FERREIRA FILHO
      Estou tentando fazer um update de vários registros com checkbox, mais não está atualizando no banco de dados MySQL. Segue o meu código, desde já agradeço!
       
      <?php 
      include_once("../config/conexao.php");

      $nivel = $_SESSION['nivel'];
         
      if ($_SESSION['nivel'] == 4)
          {
      $sql = "SELECT ID, NOME, VOLUNTARIO FROM cidadao ORDER BY NOME";
      $res = mysql_query($sql) or die (mysql_error() );
      if (mysql_num_rows($res) > 0 )
      echo '<form method="post">';
      ?>
      <table width="431" border="0" align="center" cellpadding="0" class="bordaFina">
          <tr bgcolor="#999999" >
            <td width="302" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Nome  </td>
            <td width="123" align="center" valign="middle" bgcolor="#F0F0F0" class="style27">Voluntário</td>
          </tr>
          <?php
      while ($row = mysql_fetch_assoc($res))
          {     
          ?>
          <tr >
            <td><?php echo $row["NOME"];?></div></td>
        <td ><div align="center"> 
       <input type="checkbox" name= "VOLUNTARIOS[<?php  $row["ID"] ?>]" value="1" <?php if($row["VOLUNTARIO"] == 1){ echo "checked";} ?>> 
       <input type="hidden" name= "VOLUNTARIOS[<?php $row["ID"] ?>]" value="0" <?php if($row["VOLUNTARIO"] == 0){ echo ""; }  ?>>
        </div></td>
        </tr>
          <?php 
        }  //End While
        ?>
      </table>
        
      <p><div align="center"><?php echo '<input type="submit"name= "submit" value= "Salvar">';?></div>
        <?php
      if (isset ($_POST["submit"]))
      {        
              foreach($_POST['VOLUNTARIOS'] as $ID => $VOL) 
                {mysql_query("update cidadao SET VOLUNTARIO ='$VOL' WHERE ID='$ID'")or die(mysql_error()); }                    
                 echo "<meta HTTP-EQUIV='refresh' CONTENT='1;URL=teste.php'>";
      }
      ?>
      <?php
      echo'<br>';
      echo '</form>';
      }//endif
      ?>
       

    • By FabianoSouza
      Pessoal, tenho uma lista com 100.000 nomes.
      Preciso colocar o campo sexo para esses registros.
       
      Os colegas sabem dizer se há alguma técnica, ferramenta ou função para realizar esse trabalho?
       
      Tive uma ideia de fazer uma comparação usando  um "dicionário de nomes". Isso seria um caminho viável? Alguém teria um dicionário para disponibilizar?
       
       
      Grato.
       
    • By unset
      Olá a todos, estou com uma dúvida ou probleminha e buguei aqui, se alguém puder ajudar, é o seguinte tem como eu fazer um update sem setar valor ou de alguma forma não alterar o valor do campo se o campo tiver valor no banco?
       
      Exemplo
       
      Aqui eu recebo os dados pra cadastrar tudo certo
       
      public function update($dados) { $this->db->query("UPDATE posts SET capa = :capa, titulo = :titulo, texto = :texto WHERE id = :id"); $this->db->bind(":id", $dados['id']); $this->db->bind(":capa", $dados['capa']); $this->db->bind(":titulo", $dados['titulo']); $this->db->bind(":texto", $dados['texto']); }  
      Porém, o campo capa, ou seja o dado caba não é obrigatório então se ele vier com valor null, ou em branco etc deveria não alterar o valor no banco pois o mesmo ja esta preenchido, como fazer para que ele altera o valor no banco somente se for null
       
      Eu já tentei usar unset($dados['capa']); para remover a capa, mais ele deixa o campo do DB null mesmo quando tem valor lá, e também definir $dados['capa'] = null, em fim não da certo...
       
       
    • By PeeWee
      Estou tentando aprender wordpress e me deparei com o seguinte problema: tenho dois notebooks com Windows 7 e no mais antigo a versão mais atual do wordpress deu incompatibilidade com o PHP versão 5.5.12, no notebook mais novo também com windows 7 deu outra msg de erro devido o PHP estar muito atual  (7.3.10)  exibindo o erro: Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\cursoWP\wp-includes\functions.php on line 1072 . 
      Fiz algumas pesquisas, apliquei a solução sugerido mas sem êxito.
      A questão é a seguinte: se eu atualizar o wamp irá automaticamente atualizar o php e o mysql, isso irá subscrever a instalação anterior? Irei perder os BDs existentes no mysql?
      Táa uma zica isso, nunca vi isso, em um note táa antiga demais e no outro está atual demais, vai entender... 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.