Colocar itens de um carrinho de compras numa tabela do BD
Eu possuo um carrinho de compras que me mostra os itens selecionados pelo cliente dentro de um foreach, conforme código abaixo:
<?php foreach($resultsCarts as $result) : ?>
<tr>
<td><?php echo $result['name']?></td>
<td><input type="text" name="prod[<?php echo $result['id']?>]" value="<?php echo $result['quantity']?>" size="1" max="<?php echo $result['estoque']?>" min="1"/></td>
<td>R$<?php echo number_format($result['price'], 2, ',', '.')?></td>
<td>R$<?php echo number_format($result['subtotal'], 2, ',', '.')?></td>
</tr>
<?php endforeach;?>
Eu gostaria de inserir todos os itens retornados dentro de uma tabela chamada itens_pedido, vinculando todos eles ao último pedido feito.
O código que insere os dados do último pedido e que me retorna o identificador dela é o que segue abaixo, e funciona:
$sql = "INSERT INTO psd_pedidos (pedido_id, pedido_data, pedido_data_hora, pedido_valor, pedido_status) values('','".date('Y-m-d')."','".date('Y-m-d H:i:s')."', '".$ttpagseguro."','finalizado')";
$stmt = $conn->prepare($sql);
$stmt->execute();
$ultpedido = $conn->lastInsertId();
O problema que não estou conseguindo resolver é: como pegar a informação que e é retornada pela variável $ultpedido, que é o identificador do último pedido feito, e todos os itens do carrinho de compras e inseri-los na tabela psd_itens, vinculados a este último pedido. O campo que armazena o último pedido na tabela psd_itens é uma chave estrangeira da tabela psd_pedidos e tem o nome de pedido_id.
Eu desenvolvi o seguinte código, que me parece não ter problemas, mas não estou sabendo usa-lo:
//VARIAVEIS COM VALORES QUE RETORNAM NO FOREACH
$nmproduto = $result['name'];
$vlproduto = $result['price'];
$qtproduto = $result['quantity'];
$sbtproduto = $result['subtotal'];
$sql = "INSERT INTO psd_itens(itens_id, pedido_id, itens_produto, itens_quantidade, itens_valor_produto, itens_total ) values('',
'".$ultpedido."',
'".$nmproduto."',
'".$vlproduto."',
'".$qtproduto."',
'".$sbtproduto."')
";
$stmt = $conn->prepare($sql);
$stmt->execute();
Sei que ele deve estar dentro do foreach mas todas as minhas tentativas com soluções de outras experiências retornaram erros. Alguém sabe como eu resolvo estes problemas?Discussão (1)
Carregando comentários...