php – GET passing all records in URL and POST Displays only the last record


Good afternoon everyone, all right?

I'm trying to create a page to insert items into a cart, this page stores the customer code and the command code in a variable and passes it between screens, in my product search screen I added a button, where when clicking on it , add the product in this id that I kept.

Problem: When I leave the form's Action as GET , it presents all records in the URL , now when I leave it as POST , it passes the value of the last database record to a variable.

I believe there is some flaw in the logic created, could you help me?

NOTE: I left the product code inside the input to pass it as POST ;

<?php if($rows=mysqli_num_rows($result) > 0){ 

    <form method="GET" action="incluir_itens.php">
        <!-- Criando os inputs abaixo para incluir o id da comanda e código do cliente, para enviar via POST pra incluir itens, não sei se é o melhor jeito, mas funcionou-->
        <input type="text" name="id_comanda" id="id_comanda" value="<?php echo $id_comanda;?>">
        <input type="text" name="cod_cliente" id="cod_cliente" value="<?php echo $cod_cliente;?>">

        <table id="tabela" class="table table-hover">
                 <th scope="col">Código</th>
                 <th scope="col">Descrição</th>
                 <th scope="col">Qtd</th>
                 <th scope="col">Preço de Venda</th>
                 <th scope="col"></th>
                 while($rows = mysqli_fetch_array($result)){ //while que mostra os resultados
                     <b><input type="text" name="cod_produto" id="cod_produto" value="<?php echo $rows['cod_produto']; ?>"></b>
                    <div class="col-5">
                            <button type="submit" style="border:none;"><i class="fa fa-check" style="font-size:25px;color:green;"></i></button>


URL as GET: /incluir_itens.php?id_comanda=32&cod_cliente=2&cod_produto=1&quantidade=&cod_produto=2&quantidade=&cod_produto=3&quantidade=&cod_produto=4&quantidade=&cod_produto=5&quantidade=

SQL Used:


   $tipo_pesquisa = $_POST['pesquisa_produto'];
   $valor_pesquisa = $_POST['valor_pesquisa'];

   if ($tipo_pesquisa == "descricao"){
       $sql_produtos = "select * from produtos where descricao like '%$valor_pesquisa%'";
   elseif($tipo_pesquisa == "cod_produto"){
       $sql_produtos = "select * from produtos where cod_produto = $valor_pesquisa";
   elseif($tipo_pesquisa == "cod_interno"){
       $sql_produtos = "select * from produtos where cod_interno = '$valor_pesquisa'";

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

If I leave it as POST , it shows only the last record of my bank. If my bank record only shows 1 record, I can include it in the cart normally.


This is because there are several inputs with the same name . Try switching from:

<b><input type="text" name="cod_produto" id="cod_produto" value="<?php echo $rows['cod_produto']; ?>"></b>


<b><input type="text" name="cod_produto[]" id="cod_produto" value="<?php echo $rows['cod_produto']; ?>"></b>
Scroll to Top