Select saves the same data in 2 different fields

0

I need to know that when the employee selects the product the "product code" is automatically populated, so far so good, but when I write the data in the DB, the product and product_code have the same data (in this case the product code).

<select name="produto" id="produto">
<option value="" disable>Escolha um produto:</option>
<?php
require "conexao.php";
$sql = mysql_query("select * from produto");
    while ($row = mysql_fetch_array($sql)) {
       print '<option value="'.$row['codigo_produto'].'">'.$row['nome'].'</option>';
    }
?>
</select><br/>
<input name="codigo_produto" id="codigo_produto"><br />

Form Write Code:

$produto = $_POST["produto"]; 
$codigo_produto = $_POST["codigo_produto"]; 
$quantidade = $_POST["quantidade"]; 
$solicitante = $_POST["solicitante"]; 
$log = date('Y-m-d H:i:s'); 
$string_sql = "INSERT INTO op (codigo,produto,codigo_produto,quantidade,solicitante,log) VALUES (null,'$produto','$codigo_produto','$quantidade','$solicitante',NOW())"; 
    
asked by anonymous 09.09.2014 / 15:00

1 answer

2

The problem is that when you look for $produto = $_POST["produto"]; this will return you the value of the selected item: value="'.$row['codigo_produto'].'" .

You can create a hidden field and pass it to later save, keeping the recording intact:

<select name="produtoSelect" id="produtoSelect">
<option value="" disable>Escolha um produto:</option>
<?php
require "conexao.php";
$sql = mysql_query("select * from produto");
    while ($row = mysql_fetch_array($sql)) {
       print '<option value="'.$row['codigo_produto'].'">'.$row['nome'].'</option>';
    }
?>
</select><br/>
<input name="codigo_produto" id="codigo_produto"><br />
<input type=hidden name="produto" id="produto"><br />

Or then search the field name before writing:

$produto = $_POST["produto"]; 
$codigo_produto = $_POST["codigo_produto"]; 
$quantidade = $_POST["quantidade"]; 
$solicitante = $_POST["solicitante"]; 
$log = date('Y-m-d H:i:s'); 

$search_sql=  mysql_query("select nome from produto where codigo_produto=$produto");

if ($row = mysql_fetch_array($search_sql)) 
     $produto_nome = $row['nome'];

$string_sql = "INSERT INTO op (codigo,produto,codigo_produto,quantidade,solicitante,log) 
VALUES(null,'$produto_nome','$codigo_produto','$quantidade','$solicitante',NOW())"; 

NOTE:

One more thing uses mysqli instead of mysql that will be discontinued soon!

    
09.09.2014 / 15:19