Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Dae galera, estou fazendo um carrinho de compras que salva os itens da cesta no banco, mas creio que isso não seja a melhor maneira visto que a tabela vai ficar muito grande com o passar do tempo, então pensei em armazenar o carrinho em uma sessão ao invés do banco, mas não estou me saindo muito bem.
Vou passar o código que estou utilizando e está funcional, se alguém puder me dar uma dica eu agradeço.
segue o código do carrinho:
<?php
if(isset($_SESSION[login])){
require_once("includes/restringir.php");
include("includes/loja_painel.php");
}
session_start();
$acao = $_GET['acao'];
$cod = $_GET['produto'];
if ($acao == "incluir")
{
if ($cod != '')
{
if (is_numeric($cod))
{
$cod = addslashes(htmlentities($cod));
$query_rs_carrinho = "SELECT * FROM cesta WHERE cesta.cod = '".$cod."' AND cesta.sessao = '".session_id()."'";
$rs_carrinho = mysql_query($query_rs_carrinho);
$row_rs_carrinho = mysql_fetch_assoc($rs_carrinho);
$totalRows_rs_carrinho = mysql_num_rows($rs_carrinho);
if ($totalRows_rs_carrinho == 0)
{
// Aqui pegamos os dados do produto a ser incluido no carrinho
$query_rs_produto = "SELECT * FROM produtos WHERE id = '".$cod."'";
$rs_produto = mysql_query($query_rs_produto);
$row_rs_produto = mysql_fetch_assoc($rs_produto);
$totalRows_rs_produto = mysql_num_rows($rs_produto);
if ($totalRows_rs_produto > 0)
{
$registro_produto = mysql_fetch_assoc($rs_produto);
// Incluimos o produto selecionado no carrinho de compras
if($row_rs_produto['preco2'] != '0.00'){$preco = $row_rs_produto['preco2'];}else{$preco = $row_rs_produto['preco'];}
$add_sql = "INSERT INTO cesta (id, cod, nome, preco, peso, qtd, sessao)
VALUES
('','".$row_rs_produto['id']."','".$row_rs_produto['nome']."','".$preco."','".$row_rs_produto['peso']."','1','".session_id()."')";
$rs_produto_add = mysql_query($add_sql);
header("Location: index.php?link=loja&sublink=cesta_de_compras");
}
}
}
}
}
if ($acao == "excluir")
{
if ($cod != '')
{
if (is_numeric($cod))
{
$cod = addslashes(htmlentities($cod));
$query_rs_car = "SELECT * FROM cesta WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
$rs_car = mysql_query($query_rs_car);
$row_rs_carrinho = mysql_fetch_assoc($rs_car);
$totalRows_rs_car = mysql_num_rows($rs_car);
if ($totalRows_rs_car > 0)
{
$sql_carrinho_excluir = "DELETE FROM cesta WHERE cod = '".$cod."' AND sessao = '".session_id()."'";
$exec_carrinho_excluir = mysql_query($sql_carrinho_excluir);
header("Location: index.php?link=loja&sublink=cesta_de_compras");
}
}
}
}
if ($acao == "limpar")
{
$query_rs_car = "DELETE FROM cesta WHERE sessao = '".session_id()."'";
$rs_car = mysql_query($query_rs_car);
header("Location: index.php?link=loja&sublink=cesta_de_compras");
}
if ($_POST[atualizar] == 'Atualizar')
{
$quant = $_POST['qtd'];
if (is_array($quant))
{
foreach($quant as $cod => $qtd)
{
if(is_numeric($cod) && is_numeric($qtd))
{
$sql_alterar = "UPDATE cesta SET qtd = '$qtd' WHERE cod = '$cod' AND sessao = '".session_id()."'";
$rs_alterar = mysql_query($sql_alterar);
header("Location: index.php?link=loja&sublink=cesta_de_compras");
}
}
}
}
if($_POST[finalizar] == 'Finalizar Compra')
{
header("Location: index.php?link=loja&sublink=finalizar_compra");
}
?>
<div class="logado_secao_dir" style="margin-top:25px;">
<div class="logado_topo_desc" style="width:600px;">
<div class="btn_continuar"><a href="?link=loja">Continuar comprando</a></div>
<a href="?link=loja&sublink=cesta_de_compras&acao=limpar"><div class="excluir_todos">Excluir todos os itens</div></a>
</div><!--logado_topo_desc-->
</div><!--logado_secao_dir-->
<div class="logado_secao" style="margin-top:25px;">
<div class="logado_topo_item">Cesta de Compras</div>
</div><!--logado_secao-->
<div class="loja_cesta">
<form action="index.php?link=loja&sublink=cesta_de_compras" method="post">
<table class="cesta_tabela" width="600" border="0" cellspacing="0" cellpadding="2">
<tr>
<th width="13%" height="20" bgcolor="#dedddd" scope="col">Qtd.</th>
<th width="5%" bgcolor="#dedddd" scope="col">Excluir</th>
<th width="36%" bgcolor="#dedddd" scope="col">Item</th>
<th width="22%" bgcolor="#dedddd" scope="col">Preço Unitário</th>
<th width="14%" bgcolor="#dedddd" scope="col">Sub-Total</th>
</tr>
<?php
$sql_meu_carrinho = "SELECT * FROM cesta WHERE sessao = '".session_id()."' ORDER BY nome ASC";
$exec_meu_carrinho = mysql_query($sql_meu_carrinho);
$qtd_meu_carrinho = mysql_num_rows($exec_meu_carrinho);
if ($qtd_meu_carrinho > 0)
{
$soma_carrinho = 0;
while ($row_rs_produto_carrinho = mysql_fetch_assoc($exec_meu_carrinho))
{
$soma_carrinho += ($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd']);
?>
<tr>
<td><input type"text" size="1" name="qtd[<?php echo $row_rs_produto_carrinho['cod']?>]" value="<?php echo $row_rs_produto_carrinho['qtd']?>" /></td>
<td><a href="index.php?link=loja&sublink=cesta_de_compras&produto=<?php echo $row_rs_produto_carrinho['cod']?>&acao=excluir"><img src="images/del.png" width="10" height="10" border="0" /></a></td>
<td>
<?php echo $row_rs_produto_carrinho['nome']?>
</td>
<td>R$ <?php echo number_format($row_rs_produto_carrinho['preco'],2,",","."); ?></td>
<td>R$ <?php echo number_format($row_rs_produto_carrinho['preco']*$row_rs_produto_carrinho['qtd'],2,",","."); ?></td>
</tr>
<?php
}
}else {echo '<tr><td height="35" colspan="8" style="font-size:16px;">Sua cesta está vazia</td></tr>'; }
if ($qtd_meu_carrinho > 0)
{
?>
<tr>
<td height="25"><input type="submit" class="atualizar" name="atualizar" value="Atualizar" /></td>
<td colspan="5"></td>
</tr>
<tr>
<td colspan="3"></td>
<td><strong>TOTAL:</strong> </td>
<td>R$ <?php echo number_format($soma_carrinho,2,",","."); ?></td>
</tr>
<?php } ?>
</table>
<input type="submit" class="btn_finalizar" name="finalizar" value="Finalizar Compra" />
</form>
</div>Carregando comentários...