I have a table, and I looped for it to receive input
and also to do insert, however I'm having problems in INSERT
and UPDATE
. Where I have two codigo_tipo
, descricao
fields that are always inserted together into the codigo_produto
field, but a product code can have N types and descriptions as it can only have 1.
So if I fill in only the first line, the rest are sent blank to the database, how do I send only the filled rows to the database and then have them updated afterwards if I want to change them.
index.php
<form action='salvar.php' method='POST'>
<?php
$sql = "SELECT * FROM tipoprod";
$resulta = $conn->query($sql);
$row = $resulta->fetch_assoc();
?>
<div class='form-group col-lg-4'>
<label> <b>Código do Produto:</b> </label>
<input type="text" maxlength="6" name="codigo_produto" value="<?php $row['codigo_produto'] ?>"><br><br>
</div>
<table border="2"><!-- Iniciando a Tabela -->
<thead>
<tr><!-- Início dos Títulos da Tabela / Cabeçalho -->
<th>Código</th>
<th>Descrição</th>
</tr><!-- Fim dos Títulos da Tabela / Cabeçalho -->
</thead>
<tbody>
<?php
include("conn.php");
for($i = 1; $i <= 5; $i++){ //coloquei este valor para testar
echo "<tr>";
echo "<td><input type='text' name='codigo_tipo[]' id='codigo_tipo[]' style='border:none; width:100%; background-color: transparent;'</td>";
echo "<td><input type='text' name='descricao[]' id='descricao[]' value='' style='border:none; width:100%; background-color: transparent;'</td>";
echo "</tr>";
}
?>
</tbody>
</table><br>
<div class='form-group col-lg-3'><!-- Inicio Botão para efetuar registro no Banco de Dados -->
<input type="submit" class="btn btn-success btn-lg btn-block" name="enviar_tipo" value="Salvar Informações">
</div>
</form>
save.php
<?php
include("conn.php");
if(isset($_POST['enviar_tipo'])){
$codigo_produto = $_POST['codigo_produto'];
$codigo_tipo = $_REQUEST['codigo_tipo'];
$descricao = $_REQUEST['descricao'];
$sql_tipo = "SELECT * FROM tipoprod WHERE codigo_produto = '$codigo_produto' ";
$resulta = $conn->query($sql_tipo);
$row = $resulta->fetch_assoc();
for($i = 0; $i<count($_POST['codigo_tipo'])AND($_POST['descricao']); $i++) {
if ($resulta->num_rows > 0) {
$result_produto = "UPDATE tipoprod SET codigo_tipo = '$codigo_tipo[$i]', descricao = '$descricao[$i]' WHERE codigo_produto = '$codigo_produto' ";
} else {
$result_produto = "INSERT INTO tipoprod (codigo_produto, codigo_tipo, descricao) VALUES ('$codigo_produto', '$codigo_tipo[$i]', '$descricao[$i]')";
}
$resultado_produto = mysqli_query($conn, $result_produto);
echo "$result_produto <br>";
}
}
?>