-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();
}
}
?>
why I should insert
$valor_revenda = ($valor_compra + ($valor_compra * 0.50));
before thetry
?– user191392
In fact,
valor_revenda
is not added even in the INSERT or UPDATE code.– user191392
Would you have any problem if I didn’t add
valor_revenda
?– user191392
Resale value is the variable that will save your new resale value. After that, you will pass this variable to the database.
– Marcos
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 thetry
?– user191392
Use the code exactly as I said. Nothing less.
– Marcos
Thanks Marcos, it worked.
– user191392