I cannot enter data into the array

Asked

Viewed 90 times

4

I have linked two units to this product, but when I select it I have no possibility to link another new unit, as it is made UPDATE in all, not being distinguished a new record that I try to link

As below, I am trying to register the unit code P1, after having already registered data as below in the photo, however I have this return:

UPDATE convunid SET unidade ='BD', operacao ='15' fator = '15', padrao = '30', fator_carga = '30' WHERE codigo_produto = 'MARMEL' AND id ='570',

UPDATE convunid SET unidade ='CX', operacao ='10' fator = '10', padrao = '20', fator_carga = '20' WHERE codigo_produto = 'MARMEL' AND id ='571'

UPDATE convunid SET unidade ='P1', operacao ='10' fator = '10', padrao = '20', fator_carga = '20' WHERE codigo_produto = 'MARMEL' AND id =''

I wanted it to happen, since I am trying to insert a product and not change something that does not exist as this being done

UPDATE convunid SET unidade ='BD', operacao ='15' fator = '15', padrao = '30', fator_carga = '30' WHERE codigo_produto = 'MARMEL' AND id ='570',

UPDATE convunid SET unidade ='CX', operacao ='10' fator = '10', padrao = '20', fator_carga = '20' WHERE codigo_produto = 'MARMEL' AND id ='571'

INSERT INTO convunid (unidade, operacao, fator, padrao, fator_carga, codigo_produto) VALUES ('CX', '10', '20', '20', 'MARMEL')

Does anyone have any idea how to get after entering a registration linked to this code I can select this product and enter a new record ?

inserir a descrição da imagem aqui

My save.php

$recnum = $_POST['recnum'];
$codigo_produto = $_POST['codigo_produto'];
$un_medida = array_filter($_REQUEST['un_medida']);
$operacao = $_REQUEST['operacao'];
$fator = $_REQUEST['fator'];
$default_venda = $_REQUEST['default_venda'];
$fator_carga = $_REQUEST['fator_carga'];

$sql = "SELECT * FROM convunid WHERE codigo_produto = '$codigo_produto' ";
$resulta = $conn->query($sql);
$row = $resulta->fetch_assoc();

    for($i = 0; $i<count($un_medida)AND($_REQUEST['operacao']); $i++)  {

         if ($resulta->num_rows > 0) {
             $result_conversao = "UPDATE convunid SET un_medida = '$un_medida[$i]', operacao = '$operacao[$i]', fator = '$fator[$i]', default_venda = '$default_venda[$i]', fator_carga = '$fator_carga[$i]' WHERE codigo_produto = '$codigo_produto' AND recnum = '$recnum[$i]' ";
         } else {
             $result_conversao = "INSERT INTO convunid (codigo_produto, un_medida, operacao, fator, default_venda, fator_carga) VALUES ('$codigo_produto', '$un_medida[$i]', '$operacao[$i]', '$fator[$i]', '$default_venda[$i]', '$fator_carga[$i]')";    
         }

                $resultado_conversao = mysqli_query($conn, $result_conversao);
                echo $result_conversao;
            }

Table structure

<table class="table table-striped table-bordered table-hover"><!-- Iniciando a Tabela -->
    <thead>
        <tr><!-- Início dos Títulos da Tabela / Cabeçalho -->
            <th>Unidade</th>
            <th>Operação</th>
            <th>Fator</th>
            <th>Padrão Venda</th>
            <th>Fator Carga</th>
         </tr><!-- Fim dos Títulos da Tabela / Cabeçalho -->
    </thead>
    <tbody id='conv'><!-- Início do Corpo da tabela / Quantidade de linhas e colunas -->
        <?php for($i = 0; $i <= 5; $i++){ //coloquei este valor para testar ?>        
        <tr>                                                   
            <input type="hidden" maxlength="6"  name="recnum[]" style="border:none; width:100%; background-color: transparent;">
            <td><input type="text" maxlength=""  name="un_medida[]" style="border:none; width:100%; background-color: transparent;"></td></td>                                                    
            <td><input type="text" onkeyup="limitarInput(this)" name="operacao[]" style="border:none; width:100%; background-color: transparent;"></td>
            <td><input type="text" maxlength=""  name="fator[]" style="border:none; width:100%; background-color: transparent;"></td>
            <td><input type="text" onkeyup="limitarInput(this)" name="default_venda[]" style="border:none; width:100%; background-color: transparent;"></td>
            <td><input type="text" maxlength=""  name="fator_carga[]" style="border:none; width:100%; background-color: transparent;"></td>
         </tr>
           <?php } ?>
    </tbody>
</table><!-- Finalizando a Tabela -->

1 answer

1


You can do UPDATES and INSERTS by changing the line:

if ($resulta->num_rows > 0) {

for:

if ($resulta->num_rows > $i) {

That’s because the if will only enter the else (INSERT) when the $i of loop is equal to or greater than the number of existing records. While the $i for minor, always enter the condition of UPDATE.

  • thanks, helped me a lot

  • 1

    @Victor Valeu! Obg!

Browser other questions tagged

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