How do I execute a resale value calculation action for a product in PHP code itself?

Asked

Viewed 29 times

-1

My table produto there is the column valor_revenda that simply takes the value from the column valor_compra of the same table and carries out the 50% resale calculation on the value of the product.

  • Ex: valor_revenda = (valor_compra + (valor_compra * 0.50))

I was recommended set aside the use of triggers and do operations directly in PHP code.

In my code that makes the INSERT of a product must have this type of direct calculation in PHP code, plus i am beginner in PHP and don’t know how to do these operations directly in PHP, someone could help me?

Table produto

CREATE TABLE produto (
  cd_produto INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
  nome VARCHAR(30),
  marca VARCHAR(30),
  codigo_barra VARCHAR(15),
  cor VARCHAR(30),
  tamanho VARCHAR(2),
  CHECK (tamanho IN ('P','M','G','GG')),
  genero CHAR(1),
  CHECK (genero IN ('M','F')),
  quantidade INT,
  valor_compra DECIMAL(7,2), 
  valor_revenda DECIMAL(7,2)
);
  • Insertion code in PHP
<?php
        require_once 'conexao.php'; 

        if(isset($_POST['Inserir'])){
 
            $nome = $_POST['nome'];
            $marca = $_POST['marca'];
            $codigo_barra = $_POST['codigo_barra'];
            $cor = $_POST['cor'];
            $tamanho = $_POST['tamanho'];
            $genero = $_POST['genero'];
            $quantidade = $_POST['quantidade'];
            $valor_compra = $_POST['valor_compra'];

            try {

                $insercao = "INSERT INTO produto (nome,marca,codigo_barra,cor,tamanho,genero,quantidade,valor_compra) 
                VALUES (:nome,:marca,:codigo_barra,:cor,:tamanho,:genero,:quantidade,:valor_compra)";

                $insere_dados = $conexao->prepare($insercao);

                $insere_dados->bindValue(':nome',$nome);
                $insere_dados->bindValue(':marca',$marca);
                $insere_dados->bindValue(':codigo_barra',$codigo_barra);
                $insere_dados->bindValue(':cor',$cor);
                $insere_dados->bindValue(':tamanho',$tamanho);
                $insere_dados->bindValue(':genero',$genero);
                $insere_dados->bindValue(':quantidade',$quantidade);
                $insere_dados->bindValue(':valor_compra',$valor_compra);

                $insere_dados->execute();

            } catch (PDOException $falha_insercao) {
                echo "A inserção não foi feita".$falha_insercao->getMessage();
            }
        }           
    ?>

1 answer

0


Look, I don’t know if it’s that basic at this level what you want, but I’ll give you a teaspoon for being a beginner in PHP. From what I understand, before your Ry, insert:

$valor_revenda = ($valor_compra + ($valor_compra * 0.50))

After that, change its insertion in the database, adding the field value_resale that is already present in the table, as reported, thus:

 try {

            $insercao = "INSERT INTO produto (nome,marca,codigo_barra,cor,tamanho,genero,quantidade,valor_compra,valor_revenda) 
            VALUES (:nome,:marca,:codigo_barra,:cor,:tamanho,:genero,:quantidade,:valor_compra,:valor_revenda)";

            $insere_dados = $conexao->prepare($insercao);

            $insere_dados->bindValue(':nome',$nome);
            $insere_dados->bindValue(':marca',$marca);
            $insere_dados->bindValue(':codigo_barra',$codigo_barra);
            $insere_dados->bindValue(':cor',$cor);
            $insere_dados->bindValue(':tamanho',$tamanho);
            $insere_dados->bindValue(':genero',$genero);
            $insere_dados->bindValue(':quantidade',$quantidade);
            $insere_dados->bindValue(':valor_compra',$valor_compra);
            $insere_dados->bindValue(':valor_revenda',$valor_revenda);

            $insere_dados->execute();

        }
  • why I should insert $valor_revenda = ($valor_compra + ($valor_compra * 0.50)); before the try?

  • In fact, valor_revenda is not added even in the INSERT or UPDATE code.

  • Would you have any problem if I didn’t add valor_revenda?

  • Resale value is the variable that will save your new resale value. After that, you will pass this variable to the database.

  • Need to put $valor_revenda = $_POST['valor_revenda']; and $valor_revenda = ($valor_compra + ($valor_compra * 0.50)) or just $valor_revenda = ($valor_compra + ($valor_compra * 0.50)) outside the try?

  • Use the code exactly as I said. Nothing less.

  • Thanks Marcos, it worked.

Show 2 more comments

Browser other questions tagged

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