lioncourt 0 Denunciar post Postado Janeiro 29, 2010 Olá, estou com um problema em meu carrinho, mais especificamente na parte de "gerar" os campos para o post no pagseguro, utilizo carro com banco de dados, consigo recuperar os ids dos produtos adicionados no carrinho, seleciono os produtos e totais tudo correto, menos na parte onde tenho que fazer o loop(que faço com while) dos produtos que estão no carrinho e gerar os campos hidden para o pagseguro que são gerados porem aparece tudo o que estiver no carrinho com o mesmo numero, ou seja so adiciona o primeiro produto, não esta incrementando a variavel "$i" para acrescentar + 1 a cada ciclo do loop, segue abaixo o codigo que estou usando acho que o problema pode estar nesta linha: " for ($i = 1; $i < $conta+1; $i++) { " <?php session_start(); if(!isset($_SESSION['carrinho'])){ $_SESSION['carrinho'] = array(); } //adiciona produto if(isset($_GET['acao'])){ if($_GET['acao'] == 'add'){ $id = intval($_GET['id']); if(!isset($_SESSION['carrinho'][$id])){ $_SESSION['carrinho'][$id] = 1; }else{ $_SESSION['carrinho'][$id] += 1; } } if($_GET['acao'] == 'del'){ $id = intval($_GET['id']); if(isset($_SESSION['carrinho'][$id])){ unset($_SESSION['carrinho'][$id]); } } if($_GET['acao'] == 'up'){ if(is_array($_POST['prod'])){ foreach($_POST['prod'] as $id => $qtd){ $id = intval($id); $qtd = intval($qtd); if(!empty($qtd) || $qtd <> 0){ $_SESSION['carrinho'][$id] = $qtd; }else{ unset($_SESSION['carrinho'][$id]); } } } } } if($_GET['acao'] == 'ok'){ echo "<script>alert('Gravando Pedido')</script>"; include("include/conexao.php"); $total2 = $_POST["total_compra"]; foreach($_SESSION['carrinho'] as $id => $qtd){ echo $id." | ".$qtd.""; $sql = "INSERT INTO pedidos Values('', '{$id}', '{$qtd}', '$total2', '".session_id()."')"; $qr = mysql_query($sql) or die(mysql_error()); } include("include/conexao.php"); foreach($_SESSION['carrinho'] as $id => $qtd){ echo $id." | ".$qtd.""; $verifica = mysql_query("SELECT * FROM `estoque` WHERE `id_produto`='{$id}'"); $quant = mysql_fetch_array($verifica); $q_est_atual = $quant["quantidade"]; $qtd2 = $q_est_atual - $qtd; $sql = "UPDATE estoque SET quantidade='{$qtd2}' WHERE id_produto='{$id}'"; $qr = mysql_query($sql) or die(mysql_error()); } } if($_GET['acao'] == 'webpay'){ include("include/conexao.php"); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link href="menu.css" rel="stylesheet" type="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Carrinho de Compras</title> </head> <body> <table align="center" class="desc_tab"> <caption>Carrinho de Compras</caption> <thead> <tr> <th width="244" class="titulo">Produto</th> <th width="79" class="titulo">Quantidade</th> <th width="89" class="titulo">Preço</th> <th width="100" class="titulo">SubTotal</th> <th width="64" class="titulo">Remover</th> </tr> </thead> <form action="?opcao=mov_carrinho&acao=up" method="post"> <tfoot> <tr> <td colspan="5"><input type="submit" class="botao" value="Atualizar" /></td> <tr> <td colspan="5"><a href="?opcao=mov_index_carrinho" class="input">Continuar Comprando</a></td> </tfoot> <tbody> <?php if(count($_SESSION['carrinho']) == 0){ echo '<tr><td colspan="5">Não há produto no carrinho</td></tr>'; }else{ require("include/conexao.php"); foreach($_SESSION['carrinho'] as $id => $qtd){ $sql = "SELECT * FROM entrada,produto WHERE entrada.id_produto='$id' AND produto.id='$id'"; $qr = mysql_query($sql) or die(mysql_error()); $ln = mysql_fetch_assoc($qr); $nome = $ln['produto']; $preco = number_format($ln['valor_individual'], 2, ',', '.'); $sub = number_format($ln['valor_individual'] * $qtd, 2, ',', '.'); $total += $ln['valor_individual'] * $qtd; echo '<tr> <td class="titulo">'.utf8_decode($nome).'</td> <td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td> <td class="titulo_msg">R$ '.$preco.'</td> <td class="titulo_msg">R$ '.$sub.'</td> <td class="titulo"><a href="?opcao=mov_carrinho&acao=del&id='.$id.'">Remove</a></td> </tr>'; } $total = number_format($total, 2, ',', '.'); echo '<tr> <td class="titulo" colspan="4">Total</td> <td class="titulo_msg">R$ '.$total.'</td> </tr>'; } ?> </tbody> </form> </table> <form id="form1" name="form1" method="post" action="?opcao=mov_carrinho&acao=ok"> <div align="center"> <input name="button" type="submit" class="botao" id="button" value="Finalizar" /> <input type="hidden" name="total_compra" id="total_compra" value="<?php echo $total; ?>" /> </div> <div align="center"></div> <div align="center"></div> <div align="center"></div> </form> <form id="form2" name="form1" method="post" action="?opcao=mov_carrinho&acao=webpay"> <div align="center"> <input name="button2" type="submit" class="botao" id="button2" value="Grava pedido" /> <input type="hidden" name="total_compra" id="total_compra" value="<?php echo $total; ?>" /> </div> <div align="center"></div> <div align="center"></div> <div align="center"></div> </form> <form target="pagseguro" action="https://pagseguro.uol.com.br/security/webpagamentos/webpagto.aspx" method="post"> <div align="center"> <input type="hidden" name="email_cobranca" value="bielbanco@yahoo.com.br" /> <input type="hidden" name="tipo" value="CP" /> <input type="hidden" name="moeda" value="BRL" /> <!-- INÍCIO DOS DADOS DO USUÁRIO --> <input type="hidden" name="cliente_nome" value="<?php echo $nome; ?>" /> <input type="hidden" name="cliente_cep" value="<?php echo $cep; ?>" /> <input type="hidden" name="cliente_end" value="<?php echo $endereco; ?>" /> <input type="hidden" name="cliente_num" value="<?php echo $codigo; ?>" /> <input type="hidden" name="cliente_compl" value="Sala 109" /> <input type="hidden" name="cliente_bairro" value="<?php echo $bairro; ?>" /> <input type="hidden" name="cliente_cidade" value="<?php echo $cidade; ?>" /> <input type="hidden" name="cliente_uf" value="<?php echo $estado; ?>" /> <input type="hidden" name="cliente_pais" value="BRA" /> <input type="hidden" name="cliente_ddd" value="18" /> <input type="hidden" name="cliente_tel" value="<?php echo $telefone; ?>" /> <input type="hidden" name="cliente_email" value="<?php echo $email; ?>" /> <!-- FIM DOS DADOS DO USUÁRIO --> <? // SELECIONA CAMPOS DA COMPRA PARA ENVIAR AO PAGSEGURO USANDO O VALOR DA SESSÃO foreach ($_SESSION['carrinho'] as $id => $qtd){ // echo $id." | ".$qtd.""; $select = "SELECT * FROM pedidos,produto,entrada WHERE pedidos.id_produto='{$id}' AND produto.id='{$id}' AND entrada.id_produto='{$id}' AND pedidos.sessao = '".session_id()."'"; $comando = mysql_query($select); $conta = mysql_num_rows($comando); print_r($select); print_r($conta); //$cadastrados++; //echo $cadastrados; // while ($item = mysql_fetch_assoc($comando)) for ($i = 1; $i < $conta+1; $i++) { //AQUI QUE EU ACHO QUE DEVE ESTAR O PROBLEMA $item=mysql_fetch_assoc($comando) ?> <input type="hidden" name="item_id_<?=$i;?>" value="<?=$item['id'];?>" /> <input type="hidden" name="item_descr_<?=$i;?>" value="<?=$item['produto'];?>" /> <input type="hidden" name="item_quant_<?=$i;?>" value="<?=$item['quantidade'];?>" /> <input type="hidden" name="item_valor_<?=$i;?>" value="<?=$item['valor_individual'];?>" /> <? } } ?> <label> <input name="button5" type="submit" class="botao" id="button5" value="WebPay" /> </label> </div> </form> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
lioncourt 0 Denunciar post Postado Janeiro 30, 2010 Não precisa mais, RESOLVIDO. Compartilhar este post Link para o post Compartilhar em outros sites
Anderson de Souza 0 Denunciar post Postado Outubro 23, 2010 Como você consegui resolver este problema??? valeu Compartilhar este post Link para o post Compartilhar em outros sites
Vinícius Fasolin 0 Denunciar post Postado Fevereiro 3, 2011 Também estou com problemas com isso, se puder postar a a sua solução ficaria agradecido. Compartilhar este post Link para o post Compartilhar em outros sites