Ir para conteúdo
Fórum Script Brasil
  • 0

Problema Com Carrinho De Compras


Hudão

Pergunta

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);
################################################################################
?>

Alguém pode me ajudar? Obrigado.

Editado por Hudão
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Para simplificar um pouco as coisas. O problema tá nesse trecho do código:

################################################################################

# 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);
                }
        }

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...