Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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">](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"](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>Carregando comentários...