Ir para conteúdo

POWERED BY:

Arquivado

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

marcosfj1

Inserir varios itens ao carrinho de uma vez

Recommended Posts

Bom fazendo inumeros teste aqui, percebi que nao precisava fazer tantas coisas no codigo, entao dei um resumida nele....porem ainda continuo com o problema, espero q alguem possa me ajudar... o codigo agora esta da seguinte maneira:

 

if (isset($_POST['carrinho_adicionar_varios'])) {

		//FAÇO UM FOR PARA PEGAR TODOS OS IDs
			for ($i=0; $i<sizeof($_POST['id_produto']); $i++) {
			//for ($j=0; $j<sizeof($_POST['qt_produto']); $j++) {


				//VERIFICO SE FOI MARCADO ALGUM PRODUTO PELO SEU ID
					if ($_POST['id_produto'][$i]) {

					//FAÇO UM SELECT NA TABELA CARRINHO PARA VER SE O PRODUTO JÁ SE ENCONTRA LA
					$sql = "SELECT C.*, P.qt_limite_venda, P.vl_peso
							FROM carrinho C
							INNER JOIN produto P ON P.id_produto = C.id_produto
							WHERE C.id_cliente = {$_SESSION['cliente']['id_cliente']}
							AND C.id_produto = {$_POST['id_produto'][$i]}";	
					$req = mysql_query($sql);
					$cp = mysql_fetch_array($req);

					$qt_produto = $cp['qt_produto'] + $_POST['qt_produto'][$i];	
					echo $_POST['qt_produto'][$i].'<br>';
					echo $qt_produto.'<br>';
					//SE O PRODUTO JÁ SE ENCONTRAR NA TABELA CARRINHO, AUMENTO APENAS A QUANTIDADE DELE
							if($cp['id_produto'] == $_POST['id_produto'][$i]){						
								$sql = "UPDATE carrinho SET qt_produto = {$qt_produto}
										WHERE id_produto = {$cp['id_produto']}
										AND id_cliente = {$cp['id_cliente']}";
								//mysql_query($sql) or die(mysql_error());

							}else{
								$chave_produto = md5(uniqid(rand(), true));
								$sql = "INSERT INTO carrinho (dt_hr, id_cliente, id_produto, qt_produto, chave_produto)
										VALUES (now(), {$_SESSION['cliente']['id_cliente']}, {$_POST['id_produto'][$i]}, '$qt_produto', '$chave_produto')";
								mysql_query($sql) or die(mysql_error());
							}


					}
			//}
			}



		}

 

Coloquei alguns ECHOs para poder ver o que esta sendo mandando para o carrinho de compras, e percebi que quando eu seleciono os mesmo produtos que já estao la ao dar o echo ele manda as quantidades certas que eu digitei no campo quantidade....mas se eu seleciono apenas um produto do q estao lá, insere apenas 1 e nao o valor q eu digitei no campo de input referente a quantidade.

 

Tambem posso dizer q se apos enviar os 4 produtos, se eu seleciono um 5 produto q nao esta na lista dos que ja estao no carrinho, ele tbm insere apenas uma unidade e nao a quantia q eu digitei.

 

Parece q o esquema de adicionar varios produtos com varias quantidades só funciona uma vez hehe, depois ele insere de um em um hehe

 

Alguem sabe pq isso?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim:

 

<input name="id_produto[]" id="id_produto[]" type="checkbox" value="<?=$cp['id_produto'] ?>" /> Compra Rápida
<input name="qt_produto[]" id="qt_produto[]" size ="2" maxlength="2" type="text" style="width:17px;font-size: 13px" value="1"/> Qtde

 

PS: inclusive o 'value' foi você q me sugeriu que já colocasse 1 afinal ngm compra 0 produtos hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo , tenta fazer o insert assim

 

"INSERT INTO carrinho (dt_hr, id_cliente, id_produto, qt_produto, chave_produto)
VALUES (now(), '".$_SESSION['cliente']['id_cliente']."', '".$_POST['id_produto'][$i]."', '".$qt_produto."', '".$chave_produto."'";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mesma coisa amigo, nao foi tbm...tentei inserir dois produtos q eu ja tinha dos 4 no carrinho e inseriu apenas um na quantidade

 

Depois tentei inserir um produto novo que nao estava no carrinho e tbm inseriu apenas um na quantidade

 

 

E cara percebi agora num teste o seguinte o primeiro produto inserido no carrinho se eu tento adicionar somente nele u quantidade ele adiciona a quantidade...ou seja para o primeiro produto da lista do carrinho ele considera aquilo q eu digitei no campo input, mas para os outros nao funciona e add apenas 1 independente do numero q eu coloque na quantidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele tá sobrepondo os produtos existentes então ?

 

 

Hum nao...pera ai vou tentar explicar melhor

 

Meu carrinho tava vazio, ai eu selecionei 4 itens diferentes e coloquei quantidades diferentes e cliquei em comprar, entao beleza vou no carrinho e esta la os 4 itens com as quantidades que eu determei.

 

Ai beleza voltei na lista de produtos...fui la e selecionei o primeiro produto que esta no carrinho (o numero 1) e adicionei mais 5 na quantidade dele, beleza ele adiciona os 5 que eu determinei

 

MAS...

 

- Se eu seleciono algum dos outros produtos (numero 2, 3, 4) e tento adicionar uma quantidade ele nao faz, adiciona apenas 1

 

- Se eu busco um outro produto ou seja um quinto produto e tento adicionar ele com 5 de quantidade e clico em adicionar, ele adiciona apenas 1

 

Parece que ele simplesmente nao faz mais as buscas do vetor quantidade

 

Vou colocar meu codigo inteiro:

 

Campos inputs:

<span class="compra">
<input name="id_produto[]" id="id_produto[]" type="checkbox" value="<?=$cp['id_produto'] ?>" /> Compra Rápida
<input name="qt_produto[]" id="qt_produto[]" size ="2" maxlength="2" type="text" style="width:17px;font-size: 13px" value="1"/> Qtde
</span>

 

Botao comprar e campos hidden:

<input type="image" name="carrinho_adicionar_varios" id="carrinho_adicionar_varios" onClick="conf()" value="carrinho_adicionar_varios"  src="imagem/bt_comprar.gif" alt="Adicionar Itens Selecionados" />
<input type="hidden" name="carrinho_adicionar_varios" id="carrinho_adicionar_varios" value="<?php  $_POST['id_produto'] ?>"/>
<input type="hidden" name="carrinho_adicionar_varios" id="carrinho_adicionar_varios" value="<?php  $_POST['qt_produto'] ?>"/>

 

E a ultima parte:

if (isset($_POST['carrinho_adicionar_varios'])) {

		//FAÇO UM FOR PARA PEGAR TODOS OS IDs
			for ($i=0; $i<sizeof($_POST['id_produto']); $i++) {

				//VERIFICO SE FOI MARCADO ALGUM PRODUTO PELO SEU ID
					if ($_POST['id_produto'][$i]) {

					//FAÇO UM SELECT NA TABELA CARRINHO PARA VER SE O PRODUTO JÁ SE ENCONTRA LA
					$sql = "SELECT C.*, P.qt_limite_venda, P.vl_peso
							FROM carrinho C
							INNER JOIN produto P ON P.id_produto = C.id_produto
							WHERE C.id_cliente = {$_SESSION['cliente']['id_cliente']}
							AND C.id_produto = {$_POST['id_produto'][$i]}";	
					$req = mysql_query($sql);
					$cp = mysql_fetch_array($req);

					$qt_produto = $cp['qt_produto'] + $_POST['qt_produto'][$i];	
					echo $_POST['qt_produto'][$i].'<br>';
					echo $qt_produto.'<br>';
					//SE O PRODUTO JÁ SE ENCONTRAR NA TABELA CARRINHO, AUMENTO APENAS A QUANTIDADE DELE
							if($cp['id_produto'] == $_POST['id_produto'][$i]){						
								$sql = "UPDATE carrinho SET qt_produto = {$qt_produto}
										WHERE id_produto = {$cp['id_produto']}
										AND id_cliente = {$cp['id_cliente']}";
								//mysql_query($sql) or die(mysql_error());

							}else{
								$chave_produto = md5(uniqid(rand(), true));
								$sql = "INSERT INTO carrinho (dt_hr, id_cliente, id_produto, qt_produto, chave_produto) 
										VALUES (now(), '".$_SESSION['cliente']['id_cliente']."', '".$_POST['id_produto'][$i]."', '".$qt_produto."', '".$chave_produto."'";


								//mysql_query($sql) or die(mysql_error());
							}
					}
			}
		}

 

Pronto...acho q consegui explicar certinho o que esta acontecendo...senao me fala q tento melhorar

 

Falou

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.