Olá pessoal, meu problema é o seguinte: tenho um script de carrinho de compras funcionando quaer por completo. O único problema é que ele não atualiza a quantidade de produtos no carrinho, fazendo com que se eu colocar um item no carrinho, ele sempre ficará com 1 e não tem como eu aumentar a quantidade e nem excluir o item se eu colocar a quantidade igual a zero.
segue o script comentado:
<?php
session_start();
################################################################################
# Aqui iremos incluir o arquivo de conexao com o banco de dados e a variável que pega a string da pagina anterior com o código do produto
################################################################################
include "conexao.php";
$cod_produto = $_GET["cod_produto"];
################################################################################ Essa parte do código faz o seguinte: 1° analisa se já existe a sessão cod_ped e se não existir vai selecionar o maior codigo de pedido já realizado no site e vai ver se não tiver sido feito nenhum pedido o primeiro pedido vai ser igual a 1 caso contrário irá acrescentar mais 1 no numero máximo do pedido existente e irá inserir na tabela pedidos no campo cod_pedido o valor do novo pedido que está sendo realizado agora. Irá também iniciar uma nova sessão chamada cod_ped com o valor do pedido atual.
################################################################################
if($_SESSION['cod_ped']==FALSE)
{
$sqlmax = "SELECT MAX(cod_pedido) AS max_codpedido FROM tbpedidos";
$rsmax = mysql_query($sqlmax,$conexao);
$rsmaxlinhas = mysql_num_rows($rsmax);
$array = mysql_fetch_array($rsmax);
if($rsmaxlinhas == 0)
{
$novo_pedido = 1;
}
else
{
$novo_pedido = $array['max_codpedido'] + 1;
}
$inserir1 = "INSERT INTO tbpedidos (cod_pedido) VALUES ('$novo_pedido')";
$rsinserir1 = mysql_query($inserir1,$conexao);
$_SESSION['cod_ped'] = $novo_pedido;
}
################################################################################
# Se a Query String $_GET['cod_produto'] não estiver vazia vai selecionar todos os campos da tabela pedidos_itens onde o campo cod_pedido seja igual a sessão atual e o campo cod_produto seja igual a Query String ou então retorna algum erro caso haja. Irá contar o número de registros retornados da query feita ao banco de dados e vai verificar se não houve nenhum resultado. E caso não haja nenhum resultado irá inserir um novo registro na tabela pedidos_itens nos campos informados com os valores informados. Essa parte do código serve para verificar a já existência de um determinado produto na sessão atual e caso ele não esteja no carrinho ainda irá inserí-lo ou então simplesmente não irá inserir nada no banco de dados.
################################################################################
if($_GET["cod_produto"] != "")
{
$sqlpedidoitem = "SELECT * FROM tbpedidos_itens WHERE cod_pedido=" .$_SESSION['cod_ped']. " AND cod_produto ='$cod_produto'" or die ("Erro: ".mysql_error());
$rspedidoitem = mysql_query($sqlpedidoitem,$conexao);
$linhas = mysql_num_rows($rspedidoitem);
if($linhas == 0)
{
$inserir2 = "INSERT INTO tbpedidos_itens (cod_pedido, cod_produto, quantidadeproduto) VALUES (" .$_SESSION['cod_ped']. ",'$cod_produto', 1)";
$rsinserir2 = mysql_query($inserir2,$conexao);
}
}
################################################################################
# Existe um campo onde o usuário poderá alterar a quantidade de produtos a serem comprados, caso ele venha digitar 0 ou nulo nesse campo e em seguida clicar em Recalcular, todos os produtos referentes ao pedido em andamento serão excluídos do carrinho.
################################################################################
if($_POST != "")
{
$delete1 = "DELETE FROM tbpedidos_itens WHERE cod_pedido=" .$_SESSION['cod_ped']. "";
$rsdelete1 = mysql_query($delete1,$conexao);
################################################################################
# Como todos os produtos inseridos no carrinho foram excluídos, é necessário recompor a cesta com os itens que são diferentes de 0 ou nulo. Este procedimento é executado pelas linhas abaixo.
################################################################################
foreach ($_POST as $field_name)
if($field_name != "B1" AND $_POST['$field_name'] != 0 AND trim($_POST['$field_name']) != "")
{
$inserir3 = "INSERT INTO tbpedidos_itens (cod_pedido, cod_produto, quantidadeproduto) VALUES (" .$_SESSION['cod_ped']. ",'$field_name'," .$_POST['$field_name']. "";
$rsinserir3 = mysql_query($inserir3,$conexao);
}
}
################################################################################
# Itens no carrinho
################################################################################
$stritenspedido = "SELECT * FROM tbprodutos INNER JOIN tbpedidos_itens ON tbprodutos.cod_produto = tbpedidos_itens.cod_produto WHERE cod_pedido = " .$_SESSION['cod_ped']. "";
$rsitenspedido = mysql_query($stritenspedido,$conexao);
$total_itenspedido = mysql_num_rows($rsitenspedido);
################################################################################
?>
Pergunta
Hudão
Olá pessoal, meu problema é o seguinte: tenho um script de carrinho de compras funcionando quaer por completo. O único problema é que ele não atualiza a quantidade de produtos no carrinho, fazendo com que se eu colocar um item no carrinho, ele sempre ficará com 1 e não tem como eu aumentar a quantidade e nem excluir o item se eu colocar a quantidade igual a zero.
segue o script comentado:
Alguém pode me ajudar? Obrigado.
Editado por HudãoLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.