Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato Duarte

[Resolvido] Carrinho de compras: inserir apenas text preenchidos

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente, bom dia. Fiz uma POG daquelas de dar até vergonha de contar... :D Como só consigo pegar todos os campos 'quantidade' preenchidos e não preenchidos, e também não consegui excluir do array as quantidades iguais a zero, inseri os valores no banco de dados e depois estou apagando os registros onde a quantidade = 0.

Portanto, se alguém ainda puder ajudar, fico grato. É pegar apenas os campos preenchidos ou excluir as quantidades = 0 do array. Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é só fazer um IF dentro do FOREACH ?

e tira o include de dentro do laço... =X

 

        include ('inc/conexao.php');
        foreach ($_POST['quantidade'] as $id_produto => $qtd)
        {
            if( $qnt>0 ){//ai sim pensa em fazer qq coisa..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian,

Era isso mesmo. Quando você deu a resposta, aí eu pensei: mas porque eu não pensei nisso antes?

Na verdade, por estar dentro de um loop foreach e ser um array, pensei que eu teria que encontrar uma função para verificar campos vazios em array. Ainda não fiz curso de PHP, fui aprendendo quando as necessidades foram surgindo e de vez em quando eu fico de pés e mãos atadas por causa de algumas coisas desse tipo.

 

Valeu mesmo pela ajuda, tá resolvido. Sucesso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.