Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Senhores, tudo bem?
Estou tentando inserir no banco através do foreach.
Funciona assim, são dados de uma sessão. Dei um foreach no insert para pegar os itens da tabela itemPedido e assim jogar no banco. Mas estou estou conseguindo inserir apenas um campo e não outros dois. Deu bug na mente. Poderiam dar uma forcinha ?
Na pagina 1:
<?php foreach($resultsCarts as $results) : ?>
<input type="text" name="valor_produto[]" value="<?php echo $results['price'];?>" >
<input type="text" name="qtd_produto[]" value="<?php echo $results['quantity'];?>" >
<input type="text" id="fk_produto" name="fk_produto" value="<?php echo $result['id']; ?>" >
<?php endforeach; ?>
Depois de clicar no botao enviar, ele vai para a pagina onde faz o cadastro
$qtd_produto = (isset($_POST['qtd_produto'])) ? $_POST['qtd_produto'] : '';
$valor_produto = (isset($_POST['valor_produto'])) ? $_POST['valor_produto'] : '';
Aqui recupera as informações vindas da página 1;
foreach($valor_produto as $valorProduto){
$sql2 = "INSERT INTO tb_itempedido(fk_pedido, fk_produto, qtd_produto, valor_produto)VALUES(:last_id, :fk_produto, :qtd_produto, :valor_produto) ";
$stm3 = $conn->prepare($sql2);
$stm3->bindValue(':last_id', $last_id);
$stm3->bindValue(':fk_produto', $fk_produto);
$stm3->bindValue(':qtd_produto', $qtd_produto);
$stm3->bindValue(':valor_produto', $valorProduto);
$retorno3 = $stm3->execute();
}
Nesse laço, pego apenas os valores; mas quero as quantidades também, assim como outro campo... E deu um nó.
Podem me ajudar?>
3 horas atrás, tetsuo disse:
Use o índice no foreach, assim, poderá pegar o valor no mesmo índice na variável das quantidades, assim:
...
foreach($valor_produto as $index => $valorProduto){
$quantidadeDesteProduto = $qtd_produto[$index];
...
Opa! Obg pela ajuda!
Muito agradecido mesmo! Estudei faz um bom temo PHP e estou retomando esses estudos. Voce me relembrou algo que eu tinha esquecido. Por isso, também estou retomando esses estudo básicos.
Ficou assim:
$qtd_produto = (isset($_POST['qtd_produto'])) ? $_POST['qtd_produto'] : '';
$valor_produto = (isset($_POST['valor_produto'])) ? $_POST['valor_produto'] : '';
$fk_produto = (isset($_POST['fk_produto'])) ? $_POST['fk_produto'] : '';
// foreach($valor_produto as $valorProduto){//laço "antes" da tua ajuda
foreach($valor_produto as $index => $valorProduto){//laço "depois" da tua ajuda.
$quantidadeDesteProduto = $qtd_produto[$index];
$valor = $valor_produto[$index];
$id_prod = $fk_produto[$index];
$sql2 = "INSERT INTO tb_itempedido(fk_pedido, fk_produto, qtd_produto, valor_produto)VALUES(:last_id, :fk_produto, :qtd_produto, :valor_produto) ";
$stm3 = $conn->prepare($sql2);
$stm3->bindValue(':last_id', $last_id);
$stm3->bindValue(':fk_produto', $id_prod);
$stm3->bindValue(':qtd_produto', $quantidadeDesteProduto);
$stm3->bindValue(':valor_produto', $valor);
$retorno3 = $stm3->execute();
}
tetsuo, vlw mesmo!
>
10 horas atrás, Carlos Antoliv disse: