I had already developed a system based on the information that was in your question before you edited it, however, I think you can take advantage of my answer - (especially in what is commented out with // prepare e bind
and // definir parâmetros e executar
are the key points) - and adapt to your need.
With your connection, it did not work with me, so I changed the example
PHP
if (isset($_POST['produto_solicitado'])){
$PedidoID= ($_POST['pedido']);
$array = ($_POST['produto_solicitado']);
$quant=count($array);
$chns_cliente="leo";
// conexão
$hostname="localhost";
$username="USUARIO";
$password="SENHA";
$db = "NOME_DB";
$conn = new mysqli($hostname, $username, $password, $db);
// Checa conexão
if ($conn->connect_error) {
die("Conexão falhou: " . $conn->connect_error);
}
$username_table = 'pedido_' . $chns_cliente . '_' . $PedidoID;
$prepara_table = $conn->prepare("CREATE TABLE $username_table ('id' int(11) NOT NULL, 'produto' longtext NOT NULL, 'valor_org' longtext NOT NULL, 'valor_desc' longtext NOT NULL, 'quantidade' longtext NOT NULL, 'valor_total_prod' longtext NOT NULL, 'obs' longtext NOT NULL, 'data_pedido' longtext NOT NULL, 'chns' longtext NOT NULL, 'para' longtext NOT NULL, 'quem' longtext NOT NULL, 'pedido' longtext NOT NULL,PRIMARY KEY (id))");
$prepara_table_autoinc = $conn->prepare("ALTER TABLE $username_table MODIFY 'id' int(11) NOT NULL AUTO_INCREMENT");
$verifica_table = $prepara_table->execute();
$verifica_table_autoinc = $prepara_table_autoinc->execute();
// prepare e bind
$stmt = $conn->prepare("INSERT INTO $username_table (produto,valor_org,valor_desc,valor_total_prod,quantidade,obs,data_pedido,chns,para,quem,pedido) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssssssss", $produto, $valor_org, $valor_desc, $valor_total_prod, $quantidade, $obs, $data_pedido, $chns, $para, $quem, $pedido);
// definir parâmetros e executar
for ( $a=0; $a<$quant; $a++ ) {
$check = $array[$a]['quantidade'];
if($check!=""){
$produto = $array[$a]['produto'];
$valor_org = $array[$a]['valor_org'];
$valor_desc = $array[$a]['valor_desc'];
$valor_total_prod = $array[$a]['valor_total_prod'];
$quantidade = $array[$a]['quantidade'];
$obs = $array[$a]['obs'];
$data_pedido = $array[$a]['data_pedido'];
$chns = $array[$a]['chns'];
$para = $array[$a]['para'];
$quem = $array[$a]['quem'];
$pedido = $array[$a]['pedido'];
$stmt->execute();
}
}
$stmt->close();
$conn->close();
}
$PedidoID=rand(5, 150000);
Library and script (optional)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script><scriptlanguage="javascript">
$(document).ready(function () {
$('.somente-numero').keyup(function (e) {
var v3 ="";
var currentVal = $(this).val();
var replaceD = currentVal.replace(/[^0-9\.]/g, '');
$(this).val(replaceD);
var v1 = Number($(this).prev().prev().val());
var v2 = Number($(this).val());
v3 = ($(this).prev().val());
v3 = Number(v3.substring(0, v3.length - 1));
var calculatedval = parseFloat((v1-(v3*(v1/100))) * v2).toFixed(2);
$(this).next().val(calculatedval);
});
});
</script>
HTML
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<!-- numero pedido -->
<input type="hidden" name="pedido" value="<?php echo $PedidoID; ?>" />
<!-- produto 1 -->
<input type="text" name="produto_solicitado[0][produto]" value="7878797" />
<input type="text" name="produto_solicitado[0][valor_org]" value="100.00" readonly />
<input type="text" name="produto_solicitado[0][valor_desc]" value="5%" placeholder="valor_desc" readonly />
<input type="text" class="somente-numero" name="produto_solicitado[0][quantidade]" value="" placeholder="quantidade"/>
<input type="text" name="produto_solicitado[0][valor_total_prod]" value="" placeholder="valor_total_prod" readonly />
<input type="text" name="produto_solicitado[0][obs]" value="" placeholder="obs"/>
<input type="text" name="produto_solicitado[0][data_pedido]" value="" placeholder="data_pedido"/>
<input type="text" name="produto_solicitado[0][chns]" value="" placeholder="chns"/>
<input type="text" name="produto_solicitado[0][para]" value="" placeholder="para"/>
<input type="text" name="produto_solicitado[0][quem]" value="" placeholder="quem"/>
<input type="hidden" name="produto_solicitado[0][pedido]" value="<?php echo $PedidoID; ?>" />
<br>
<!-- produto 2 -->
<input type="text" name="produto_solicitado[1][produto]" value="7878798" />
<input type="text" name="produto_solicitado[1][valor_org]" value="150.00" readonly />
<input type="text" name="produto_solicitado[1][valor_desc]" value="5%" placeholder="valor_desc" readonly />
<input type="text" class="somente-numero" name="produto_solicitado[1][quantidade]" value="" placeholder="quantidade"/>
<input type="text" name="produto_solicitado[1][valor_total_prod]" value="" placeholder="valor_total_prod" readonly />
<input type="text" name="produto_solicitado[1][obs]" value="" placeholder="obs"/>
<input type="text" name="produto_solicitado[1][data_pedido]" value="" placeholder="data_pedido"/>
<input type="text" name="produto_solicitado[1][chns]" value="" placeholder="chns"/>
<input type="text" name="produto_solicitado[1][para]" value="" placeholder="para"/>
<input type="text" name="produto_solicitado[1][quem]" value="" placeholder="quem"/>
<input type="hidden" name="produto_solicitado[1][pedido]" value="<?php echo $PedidoID; ?>" />
<br>
<!-- produto 3 -->
<input type="text" name="produto_solicitado[2][produto]" value="7878799" />
<input type="text" name="produto_solicitado[2][valor_org]" value="200.00" readonly />
<input type="text" name="produto_solicitado[2][valor_desc]" value="5%" placeholder="valor_desc" readonly />
<input type="text" class="somente-numero" name="produto_solicitado[2][quantidade]" value="" placeholder="quantidade"/>
<input type="text" name="produto_solicitado[2][valor_total_prod]" value="" placeholder="valor_total_prod" readonly />
<input type="text" name="produto_solicitado[2][obs]" value="" placeholder="obs"/>
<input type="text" name="produto_solicitado[2][data_pedido]" value="" placeholder="data_pedido"/>
<input type="text" name="produto_solicitado[2][chns]" value="" placeholder="chns"/>
<input type="text" name="produto_solicitado[2][para]" value="" placeholder="para"/>
<input type="text" name="produto_solicitado[2][quem]" value="" placeholder="quem"/>
<input type="hidden" name="produto_solicitado[2][pedido]" value="<?php echo $PedidoID; ?>" />
<button type="submit" class="waves-effect site envia_again">
<p class="wht">Cadastrar Pedido</p></button>
</form>
If the user refreshes the request will be inserted again in the same table.
To avoid this, make a select
and if there is no return, ie - if(empty($result))
, continue with the next steps to insert into the database:
...............
...............
$username_table = 'pedido_' . $chns_cliente . '_' . $PedidoID;
$query = "SELECT pedido FROM $username_table";
$result = mysqli_query($conn, $query);
if(empty($result)) {
$prepara_table = $conn->prepare("CREATE TABLE $username_table ('id' int(11) NOT NULL, 'produto' longtext NOT NULL, 'valor_org' longtext NOT NULL, 'valor_desc' longtext NOT NULL, 'quantidade' longtext NOT NULL, 'valor_total_prod' longtext NOT NULL, 'obs' longtext NOT NULL, 'data_pedido' longtext NOT NULL, 'chns' longtext NOT NULL, 'para' longtext NOT NULL, 'quem' longtext NOT NULL, 'pedido' longtext NOT NULL,PRIMARY KEY (id))");
$prepara_table_autoinc = $conn->prepare("ALTER TABLE $username_table MODIFY 'id' int(11) NOT NULL AUTO_INCREMENT");
$verifica_table = $prepara_table->execute();
$verifica_table_autoinc = $prepara_table_autoinc->execute();
// prepare e bind
$stmt = $conn->prepare("INSERT INTO $username_table (produto,valor_org,valor_desc,valor_total_prod,quantidade,obs,data_pedido,chns,para,quem,pedido) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssssssss", $produto, $valor_org, $valor_desc, $valor_total_prod, $quantidade, $obs, $data_pedido, $chns, $para, $quem, $pedido);
// definir parâmetros e executar
for ( $a=0; $a<$quant; $a++ ) {
$check = $array[$a]['quantidade'];
if($check!=""){
$produto = $array[$a]['produto'];
$valor_org = $array[$a]['valor_org'];
$valor_desc = $array[$a]['valor_desc'];
$valor_total_prod = $array[$a]['valor_total_prod'];
$quantidade = $array[$a]['quantidade'];
$obs = $array[$a]['obs'];
$data_pedido = $array[$a]['data_pedido'];
$chns = $array[$a]['chns'];
$para = $array[$a]['para'];
$quem = $array[$a]['quem'];
$pedido = $array[$a]['pedido'];
$stmt->execute();
}
}
$stmt->close();
}else{
echo "tabela já existe";
}
..............
..............
If you choose not to use jquery, remove the inputs readonly