Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho uma tabela html com uma lista de produtos a serem vendidos. O usuário escolhe o produto que quer comprar apenas digitando a quantidade no campo de texto. Exemplo:
Laranja - R$5,00
Quantidade: |____|
Melancia - R$10,00
Quantidade: |____|
Para pegar esses valores, uso um foreach que captura todos os campos, inclusive os não preenchidos
O campo quantidade está assim
<input name="quantidade[<?php echo $id_produto; ?>]" type="text" />O código que eu uso para pegar os campos e inserir os dados.
if (isset ($_POST['quantidade']))
{
if (is_array($_POST['quantidade']))
{
foreach ($_POST['quantidade'] as $id_produto => $qtd)
{
include ('inc/conexao.php');
$sql = mysql_query("INSERT into compras (id_produto, id_fornecedor, id_lojista, id_sessao, data, quantidade) VALUES ('$id_produto', ".$_SESSION['id_fornecedor'].", ".$_SESSION['id_lojista'].", '".session_id()."', now(), '$qtd')");
if ($sql)
{
echo 'Inserido com sucesso!';
}
}
}
}
Está funcionando, mas a dúvida é: como inserir no banco de dados apenas os dados onde os campos input type=text forem preenchidos??
Da forma que está, o foreach está pegando todos os campos de quantidade (independente de terem sido preenchidos ou não) e jogando no array, que depois vai para o bd.
A solução eu creio que estaria em eu pegar apenas os valores efetivametne preenchidos ou em retirar do array os valores = 0, só que eu não sei como fazer isso.
Valeu pela força.
Carregando comentários...