Ir para conteúdo
Fórum Script Brasil
  • 0

receber via post um whille criar um array receber via request usando foreach


adrsublimacao

Pergunta

boa tarde precisava de uma ajuda 

 

tenho 3 arquivos em php

 

o primeiro arquivo pega os dados da tabela pedidos em forma de whille


                    <?php 
                    while ($carpro = $produtosca->fetch(PDO::FETCH_OBJ)) { 
                    $nomepro  = $connect->query("SELECT * FROM produtos WHERE id = '".$carpro->produto_id."' AND idu = '$cod_id'");
                    $nomeprox = $nomepro->fetch(PDO::FETCH_OBJ);
                   
                 ?>        
                    
                  <input type="text" name="id_produto" value="<?php print $nomeprox->id;?>"/>  <!-- id do produto-->   
                  <input type="text" name="nome_produto" value="<?php print $nomeprox->nome;?>"/>  <!-- nome do produto --> 

 

<?php } ?>        

 

até aqui tudo bem ta pegando o loop certinho

 

agora tenho um segundo arquivo q recebe via post esse loop do whille

 

    $x = 0;

        

            $data_nfe['produtos'][$x] = array(
                'item' => $_POST["id_produto"], // ITEM do produto
                'nome' => $_POST["nome_produto"], // Nome do produto
                'cst' => $_POST["cst_produto"], // cst do produto
                'pis' => $_POST["pis_produto"], // pis do produto
                'cofins' => $_POST["cofins_produto"], // pis do produto
                'cfop' => $_POST["cfop_produto"], // pis do produto
                'ean' => 'SEM GTIN', // EAN do produto
                'ncm' => $_POST["ncm_produto"], // NCM do produto
                'cest' => str_replace(array(" ", ".", ","), "", $cest), // CEST do produto
                'unidade' => $_POST["und_medida_produto"], // UNIT do produto (UN, PC, KG)
                'quantidade' => $_POST["quantidade_produto"], // Quantidade de itens
                'peso' => str_replace(array(" ", ","), "", $peso), // Peso em KG. Ex: 800 gramas = 0.800 KG
                'origem' => $_POST["origem_produto"], // Origem do produto
                'subtotal' => $_POST["valor_unitario"], // Preço unitário do produto - sem descontos
                
                
                
            );
        
            $x + 1;

 

aqui faço um   echo '<pre>'; var_dump($data_nfe); so pega o ultimo item vindo do post (AQUI TA O PROBLEMA SE PUDER ME AJUDAR A PEGAR TODOS OS ITENS DO WHILE

 

ai tenho outro terceiro arquivo que recebe via request esse array

 

$x = 0;
$y = 0;

 

foreach($_REQUEST['produtos'] as $prod){
$y++;
}

foreach($_REQUEST['produtos'] as $prod ){    
$item = $x + 1;
    
$codigo = RmvString($_REQUEST['produtos'][$x]['item'], 2);    // CODIGO DO PRODUTO

$nomeproduto = RmvString($_REQUEST['produtos'][$x]['nome']);      // NOME DO PRODUTO

 

dou um echo '<pre>'; var_dump($prod); e tambem so pega o ultimo item (NA VERDADE AQUI não SEI SE TA CERTO OU não porque O SEGUNDO AQUIVO não TA PEGANDO CERTO TAMBEM)

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

A sua listagem está incompleta ou tem uma sintaxe que eu ainda não conheço. A seguir uma lista de como obter os dez primeiros itens da tbprod.

<?php
$mysqli = new mysqli("localhost","root","hacker","diario");
$produtos = $mysqli->query("select * from tbprod where codprod < 10");
while ($carpro = $produtos->fetch_assoc()) { 
          echo $carpro['codprod']." - ".$carpro['prod']."<br>";}

 

Claro que você não quer ver os dez primeiros itens do tbprod.

Estou presumindo que você tem uma nota fiscal e você quer armazenar no seu banco de dados, só não sei como você conseguiu botar os dados da nota fiscal num vetor.

Supondo que você conseguiu o CFOP, o codforn, NF, codprodforn, qt, desc, unitario, total  de uma tbNF, eu faria assim:

<?php
$mysqli = new mysqli("localhost","root","hacker","diario");
$itemNF = $mysqli->query("select * from tbNF")
While ($item = $itemNF->fetch_assoc()) {
       $sql = "insert into tbhistprod (CFOP,codforn,NF,codprodforn, qt, desc, unitarioi, total) values (";
       $sql .= ".$item['CFOP'], $item['codforn'], $item['NF'], $item['codprodforn'],$item['qt'],$item['desc'],";
       $sql .= "$item['unitario'], $item['total']";
       $inserir = $mysqli->query($sql); }

Não sei se esse código funciona, mas é mais ou menos por aí que faria a inclusão de novos itens. 

No caso de você não ter uma tbNF e quer colocar a NF na unha, o jeito é ter duas páginas PHP:

página1.php
<?php
echo <form action='pagina2.php'>
echo "<input name='CFOP'>
etc... etc...
echo "<input name='total'>
echo "<input type='submit' value='Confirmar'>
echo "</form>

página2.php
<?php
$CFOP = $_GET['CFOP'];
etc... etc...
$total = $_GET['total'];
$mysqli = new $mysqli("localhost","root","hacker","diario");
$itemNF = $mysqli->query("Insert into tbhistprod (CFOP, etc, etc) values ($CFOP, etc etc)";
header("location:pagina1.php");

Nesse caso, cada item da NF terá que entrar um de cada vez.


 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...