query update does not update the database because of 1 field

Asked

Viewed 105 times

0

Hi, I have a very strange problem. When I run my UPDATE in the query by filling in all fields except the PRODUCT VALUE, it simply doesn’t update anything. If I fill in the PRODUCT VALUE field it updates normal all fields. If I remove the valor_produto='$valorprod' query it updates normal, regardless of whether all fields are filled or not. What?

Page save.php:

<?php 

define('host','localhost');
define('usuario','root');
define('senha','');
define('db','bd');
$conexaoa = mysqli_connect(host,usuario,senha,db);



  $codigo = $_POST['cod_produto'];
  $categoria = $_POST['cat_produto'];
  $descricao = $_POST['descricao_produto'];
  $quantidade = $_POST['qnt_total'];
  $valorprod = $_POST['valor_produto'];

  $queri = "UPDATE cad_produtos SET cat_produto='$categoria',descricao_produto='$descricao',qnt_total='$quantidade',valor_produto='$valorprod' WHERE cod_produto='$codigo'";
  $resultadoa = mysqli_query($conexaoa, $queri) or die(mysqli_error($conexaoa));
  if($resultadoa){
   echo 'atualizado';
  }


?>

Page that are the inputs:

<div class="modal-content" style="width:900px;">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
      </div>
      <div class="modal-body">
       <div class="row">
        <div class="col-auto">
            <label>Código do Produto</label>
            <input type="text" id="cod_produto" class="form-control">
        </div>
        <div class="col-sm-3">
            <label>Categoria</label>
            <select id="cat_produto" class="selectpicker" data-width="99%" data-live-search="true">
            <option selected></option>>
                        <?php while($dados_cat = $result_categorias->fetch_array()){ ?>
                        <option value="<?php echo $dados_cat["categoria"] ?>"><?php echo $dados_cat["categoria"] ?></option>
                        <?php } ?>
            </select>
        </div>
        <div class="col-auto">
            <label>Descrição</label>
            <input type="text" id="descricao_produto" class="form-control" style="width: 405px">
        </div>
        <div class="col-auto">
            <label>Quantidade Total</label>
            <input type="text" id="qnt_total" class="form-control">
        </div>
        <div class="col-auto">
            <label>Valor Unitário</label>
            <input type="text" id="valor_produto" class="form-control">
        </div>
        <input type="hidden" id="cod_prod" class="form-control">
       </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default float-sm-left" data-dismiss="modal">Close</button>
        <a href="#" id="save" class="btn btn primary float-right">Update</a>
      </div>
    </div>

Script that pulls data from table to modal:

$(document).ready(function(){
        $(document).on('click','a[data-role=editar]',function(){
            var cod_produto = $(this).data('id');
            var cat_produto = $('#'+cod_produto).children('td[data-target=cat_produto]').text();
            var descricao_produto = $('#'+cod_produto).children('td[data-target=descricao_produto]').text();
            var qnt_total = $('#'+cod_produto).children('td[data-target=qnt_total]').text();
            var valor_produto = $('#'+cod_produto).children('td[data-target=valor_produto]').text();

            $('#cod_produto').val(cod_produto);
            $('#cod_prod').val(cod_produto);
            $('#cat_produto').val(cat_produto);
            $('#cat_produto').selectpicker('render');
            $('#descricao_produto').val(descricao_produto);
            $('#qnt_total').val(qnt_total);
            $('#valor_produto').val(valor_produto);
            $('#myModal').modal('toggle');
        });

        $('#save').click(function(){
            var cod_produto = $('#cod_prod').val();
            var cat_produto = $('#cat_produto').val();
            var descricao_produto = $('#descricao_produto').val();
            var qnt_total = $('#qnt_total').val();
            var valor_produto = $('#valor_produto').val();

            $.ajax({
                url         : 'save.php',
                method      : 'post',
                data        : {cat_produto : cat_produto , descricao_produto : descricao_produto , qnt_total : qnt_total , valor_produto : valor_produto , cod_produto : cod_produto},
                success     : function(response){
                    $('#'+cod_produto).children('td[data-target=cat_produto]').text(cat_produto);
                    $('#'+cod_produto).children('td[data-target=descricao_produto]').text(descricao_produto);
                    $('#'+cod_produto).children('td[data-target=qnt_total]').text(qnt_total);
                    $('#'+cod_produto).children('td[data-target=valor_produto]').text(valor_produto);
                    $('#myModal').modal('toggle'); 
                }
            });

        });
    });
  • Probably some field type validation in the database, generating an error

  • Put a console.log(response) at the beginning of the success: and see what it shows. Probably an error in PHP.

  • Probably some restriction in the product value_field, for example it cannot be null and its $valorprod string may be null, as they said of a console.log(Response) and see what PHP is returning you.

  • Your source code appears to be ok, but as stated earlier, there may be some restriction in your table for the product value_column that is preventing its update. If possible, add in the description of your problem the SQL script of creating your table for better analysis.

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.