Carrinho volta ao valor inicial
Boa tarde , estou com dificuldades para atualizar a quantidade do carrinho de compras abaixo, faz o cálculo normalmente,porém se eu adicionar outro produto ou a página for atualizada volta a quantidade inicial (1 produto) , como posso resolver este problema.se puder gravar em cookies como eu faria,dando um exemplo pra gravar e resgatar o resultado,se esta for uma boa solução.
<?php
session_start();
if(!isset($_SESSION['shop'])){
$_SESSION['shop'] = array();
}
//adiciona produto
if(isset($_GET['acao'])){
if($_GET['acao'] == 'add'){
$id = intval($_GET['id']);
if(!isset($_SESSION['shop'][$id])){
$_SESSION['shop'][$id] = 1;
}
}
//REMOVER shop
if($_GET['acao'] == 'del'){
$id = intval($_GET['id']);
if(isset($_SESSION['shop'][$id])){
unset($_SESSION['shop'][$id]);
}
}
//ALTERAR QUANTIDADE
//Se existir $_POST['prod'] então começa..
if( isset( $_POST['prod'] ) )
if($_GET['acao'] == 'atualizar'){
if(is_array($_POST['prod'])){
foreach($_POST['prod'] as $id => $qtd){
$id = intval($id);
$qtd = intval($qtd);
if(!empty($qtd) || $qtd <> 0){
$_SESSION['shop'][$id] = $qtd;
}else{
unset($_SESSION['shop'][$id]);
}
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlinhas="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-utf8" />
<title>Seja Bem Vindo !</title>
</head>
<link rel="stylesheet" type="text/css" href="css/default.css" />
<body>
<head>
<div align = "center"><h2>Suas Compras Efetuadas:</h2>
<br>
<form action="shop.php?acao=up" method="post">
<table border="1" color = width="100%">
<tr>
<td width="10%"><strong>FOTO</strong></td>
<td width="10%"><strong>NOME</strong></td>
<td width="10%"><strong>DESCRIÇÃO</strong></td>
<td width="10%"><strong>TAMANHO</strong></td>
<td width="10%"><strong>COR</strong></td>
<td width="10%"><strong>PREÇO</strong></td>
<td width="10%"><strong>QTD.</strong></td>
<td width="10%"><strong>SUBTOTAL</strong></td>
<td width="10%"><strong>REMOVER</strong></td>
</tr>
</thead>
</br>
<form action="?acao=atualizar" method="post">
<tfoot>
<tr>
<td colspan="9"><input type="submit" value="Atualizar" /></td>
<tr>
<td colspan="9"><a href="./index.php">Continuar Comprando</a></td>
<tr>
<tr>
<td colspan="9"><a href="./admin/finalizar.php">Finalizar Pedido</a></td>
</tfoot>
<tbody>
<?php
$total = 0;
if(count($_SESSION['shop']) == 0){
echo '<tr><td colspan="9"><div class = "#" align ="center">O cesto de compras esta vazio ! </td></tr>';
}else{
foreach($_SESSION['shop'] as $id => $qtd){
$conn = new PDO("mysql:host=localhost;dbname=loja", "root", "");
$cart = $conn->prepare("SELECT * FROM `produtos` WHERE `id` = '$id' ");
$cart->execute(array());
$cart->setFetchMode(PDO::FETCH_ASSOC);
$cart->execute();
while($linha = $cart->fetch()) {
$foto = $linha['foto'];
$nome = $linha['nome'];
$descricao = $linha['descricao'];
$tamanho = $linha['tamanho'];
$cor = $linha['cor'];
$preco = number_format((float)$linha['preco'] * $qtd, 2, ',', '.');
$sub = number_format((float)$linha['preco'] * $qtd, 2, ',', '.');
$total += $linha['preco'] * $qtd;
// $total = number_format($total, 2, ',', '.');
echo '<tr>';
echo '<td><img src = "'.$foto.' " width = "100px"</td>';
echo '<td>'.$nome.'</td>';
echo '<td>'.$descricao.'</td>';
echo '<td>'.$tamanho.'</td>';
echo '<td>'.$cor.'</td>';
echo '<td>R$ '.$preco.'</td>';
echo '<td><input type="text" size="3" name="prod['.$id.']" value="'.$qtd.'" /></td>';
echo '<td>R$ '.$sub.'</td>';
echo '<td colspan = "9"><a href="?acao=del&id='.$id.'"><img src="./imagens/remover.png" width="70" height="70" ></td>';
echo '</tr>';
}
echo '<tr>';
}
}
?>Discussão (0)
Carregando comentários...