Filling table

0

I have a function, but I do not know how to get it to recognize data with more than one record linked to a code, for example I have this product code ABITA and it has 5 types and descriptions linked to it.

ButinmyfunctionIcanonlysearchforthefirstorlastrecord,whichwouldbeID516orID520.Isitpossibleformetofillthistablebelowwithcorrectdatacomingfromthedatabaseawaythateachlinereceivesarecord?

index.php

<formaction='salvar.php'method='POST'><divclass='form-groupcol-lg-4'><label>  <b>Descrição:</b> </label><!--Nãoéenviadoparaobancosóestásendoutilizadoparapreencheroscamposapartirdeste--><inputtype="text" maxlength="20"  name="descri"><br><br>
    </div>
    <div class='form-group col-lg-4'>
        <label>  <b>Código do Produto:</b> </label>
        <input type="text" maxlength="15"  name="codigo_produto"><br><br>
    </div>

    <table border="2"><!-- Iniciando a Tabela -->

        <thead>
            <tr><!-- Início dos Títulos da Tabela / Cabeçalho -->
                <th>Tipo</th>
                <th>Descrição</th>                                                                                                              
            </tr><!-- Fim dos Títulos da Tabela / Cabeçalho -->
        </thead>

        <tbody>
        <?php for($i = 1; $i <= 5; $i++){ //coloquei este valor para testar ?>        
                <tr>
                    <?php              
                        $sql_tipo = "SELECT * FROM tipoprod ";
                        $resulta = $conn->query($sql_tipo);
                        $row = $resulta->fetch_assoc();
                            echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>';
                    ?> 
                    <td><input type="text" name="codigo_tipo[]"</td>
                    <td><input type="text" name="descricao[]" </td> 

                </tr>
           <?php } ?>
        </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>

functionx.php

<?php
include_once("conn.php");

function retorna($descricao, $conn){
    // Utilizando JOIN para trazer dados de mais de uma tabela 
    $result = "SELECT A.descricao, B.id, B.codigo_produto, B.codigo_tipo, B.descricao FROM CADPRO A"
            . " LEFT OUTER JOIN TIPOPROD B ON (A.CODIGO_PRODUTO = B.CODIGO_PRODUTO) WHERE A.descricao = '$descricao' "; 

    $resultado = mysqli_query($conn, $result);

    // DECLARA A VARIAVEL
    $valores = array();

    // Realiza o preenchimento dos campos a partir da descricao do produto informado
    if($resultado){
        $row = mysqli_fetch_assoc($resultado);           
        $valores['codigo_produto'] = $row['codigo_produto'];
        $valores['id'] = $row['id'];
        $valores['codigo_tipo'] = $row['codigo_tipo'];
        $valores['descricao'] = $row['descricao'];


    } else {
        return json_encode(array( 'error' => mysqli_error($conn) ));        
    }

    return json_encode($valores);                
}

if(isset($_GET['descricao'])){
    echo retorna($_GET['descricao'], $conn);
}
?>

infoprod table

    
asked by anonymous 13.10.2017 / 15:38

1 answer

1

Good ...

Actually I was kind of wrong with the error in the comments above, let's go to the codes, rs.

<tbody>
    <?php for($i = 1; $i <= 5; $i++){ //coloquei este valor para testar ?>        
        <tr>
            <?php              
                $sql_tipo = "SELECT * FROM tipoprod ";
                $resulta = $conn->query($sql_tipo);
                $row = $resulta->fetch_assoc();
                    echo '<td><input type="hidden" name="id" value="'.$row['id'].'"></td>';
            ?> 
            <td><input type="text" name="codigo_tipo[]"</td>
            <td><input type="text" name="descricao[]" </td> 

        </tr>
   <?php } ?>
</tbody>

In this snippet you sent, note that you are always only getting the first result. The correct would be to create a loop to go through each of the results, it would look something like this:

<?php
$sql_tipo = "SELECT * FROM tipoprod ";
$resulta = $conn->query($sql_tipo);
?>
<tbody>
    <?php while($row = $resulta->fetch_assoc()) : // Enquanto houver registro ele roda o while ?>        
        <tr>
            <td><input type="hidden" name="id" value="<?=$row['id'];?>"></td>';
            <td><input type="text" name="codigo_tipo[]" value="<?=$row['codigo_tipo'];?>"></td>
            <td><input type="text" name="descricao[]" value="<?=$row['descricao'];?>"> </td> 

        </tr>
   <?php endwhile ?>
</tbody>

Try to check these changes if they work for you.

    
13.10.2017 / 17:01