I can not insert data into the array

5

I linked two drives to this product, but when I select it I have no way of linking to another new drive, since% is done at all, not being distinguished a new record that I try to link to

As below, I am trying to register the drive 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 this to happen, since I'm trying to insert a product and not change anything that does not exist as it is 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 make sure that after inserting a record linked to this code I can select this product and insert a new record?

Mysave.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 -->
    
asked by anonymous 31.10.2017 / 20:46

1 answer

1

You can do UPDATES and INSERTS by changing the line:

if ($resulta->num_rows > 0) {

To:

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

This is because if will only enter else (INSERT) when $i loop is equal to or greater than the number of existing records. While $i is lower, it will always go into the UPDATE condition.

    
04.11.2017 / 17:09