marcosfj1 0 Denunciar post Postado Março 10, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Março 10, 2011 como tá o input desse qt_produto Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Março 10, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Março 10, 2011 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
marcosfj1 0 Denunciar post Postado Março 10, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Março 10, 2011 Ele tá sobrepondo os produtos existentes então ? Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Março 10, 2011 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