Jump to content
granderodeo

Carrinho de compras é o mesmo em todos PCs

Recommended Posts

Olá  meus amigos programadores, estou desenvolvendo uma loja virtual, e percebi um erro. Criei um banco de dados  chamado 'cart_system' , com uma tabela 'cart'. Coloquei o site online para fazer testes, e coloquei os produtos normalmente no carrinho, mas ao abrir em outro PC o site, estava o mesmo carrinho, por exemplo coloquei 5 produtos em um PC e quando abrir o site em outro PC estava os mesmos 5 produtos já adicionados. Assim que adiciona o produto é adicionado ao 'cart' no BD, e quando for ver os produtos ele puxa do BD os produtos que estão atualmente no 'cart', será que foi esse o meu erro. Se puderem me ajudar com maneiras de concertar esse erro, agradeço muito. Vou deixar abaixo os códigos.

 

Javascript do index.php que adiciona os produtos ao carrinho

<script type="text/javascript">
  $(document).ready(function(){
    $(".addItemBtn").click(function(e){
      e.preventDefault();
      var $form = $(this).closest(".form-submit");
      var pid = $form.find(".pid").val();
      var pname = $form.find(".pname").val();
      var pprice = $form.find(".pprice").val();
      var pimage = $form.find(".pimage").val();
      var pcode = $form.find(".pcode").val();

      $.ajax({
        url: 'carrinho/action_car.php',
        method: 'post',
        data: {pid:pid,pname:pname,pprice:pprice,pimage:pimage,pcode:pcode},
        success:function(response){
          $("#message").html(response);
          window.scrollTo(0,0);
          load_cart_item_number();
        }
      });
    });

    load_cart_item_number();

    function load_cart_item_number(){
      $.ajax({
        url: 'carrinho/action_car.php',
        method: 'get',
        data: {cartItem:"cart_item"},
        success:function(response){
          $("#cart-item").html(response);
        }
      });
    }
  });
</script>

 

index_cart.php

<div class="container">
  <div class="row justify-content-center">
    <div class="col-lg-10">
    <div style="display:<?php if(isset($_SESSION['showAlert'])){echo $_SESSION['showAlert'];}else { echo 'none'; } unset($_SESSION['showAlert']); ?>" 
    class="alert alert-success alert-dismissible mt-3">
      <button type="button" class="close" data-dismiss="alert">&times;</button>
      <strong><?php if(isset($_SESSION['message'])){echo $_SESSION['message'];} unset($_SESSION['showAlert']); ?></strong>
    </div>
      <div class="table-responsive mt-2">
        <table class="table table-bordered table-striped text-center">
         <thead>
         <tr>
            <td colspan="7">
              <h4 class="text-center text-info m-0">Produtos em seu carrinho!</h4>
            </td>
          </tr>
          <tr>
            <th>ID</th>
            <th>Imagem</th>
            <th>Produto</th>
            <th>Preço</th>
            <th>Quantidade</th>
            <th>Valor Total</th>

            <!------ REMOVER TODOS ITENS DO CARRINHO ----->
            
            <th>
              <a href="action_car.php?clear=all" class="badge-danger badge p-1" onclick="return confirm('Tem certeza de que deseja limpar seu carrinho?');">
              <i class="fa fa-trash"></i>&nbsp;&nbsp;Limpar Carrinho</a>
            </th>

            <!------ FIM REMOVER TODOS ITENS DO CARRINHO ----->

          </tr>
         </thead>
          <tbody>
            <?php
              require 'config_car.php';
              $stmt = $conn->prepare("SELECT * FROM cart");
              $stmt->execute();
              $result = $stmt->get_result();
              $grand_total = 0;
              while($row = $result->fetch_assoc()):
            ?>
            <tr>
              <td>
              <?= $row['id'] ?></td> <!-- ID do produto do BD para o carrinho -->
              <input type="hidden" class="pid" value="<?= $row['id'] ?>">
              <td>
              <img src="../<?= $row['product_image'] ?>" height="50">
              </td> <!-- chamada da imagem do BD para o carrinho -->
              <td><?= $row['product_name'] ?>
              </td>
              <td>
              <?= $row['product_price'] ?>
              </td>
              <input type="hidden" class="pprice" value="<?= $row['product_price'] ?>">
              </td>
        

                <!---- Aumentar ou Diminuir a quantidade do produto ----->

              <td><input type="number" class="form-control itemQty" value="<?= $row['qty'] ?>" style="width:80px"></td> <!---- Aumentar ou Diminuir a quantidade do produto ----->
                
                 <!---- Fim Aumentar ou Diminuir a quantidade do produto ----->

              <td><?= $row['total_price'] ?> </td>  <!-- preço total do carrinho -->

              <!------- REMOVER ITEM DO CARRINHO ------>

              <td>
                <a href="action_car.php?remove=<?= $row['id'] ?>" class="text-danger lead" onclick="return confirm('Quer mesmo remover esse produto do carrinho?');">
                <i class="fa fa-trash"></i></a>
              </td>

              <!------- FIM ITEM REMOVER DO CARRINHO ------->

            </tr>
              <?php $grand_total += $row['total_price'] ?>
              <?php endwhile; ?>
              <tr>
                <td colspan="3">
                  <a href="../index.php" class="btn btn-success"><i class="fa fa-cart-plus"></i>&nbsp;&nbsp;Continue Comprando</a>
                </td>
                <td colspan="2"><b>Total Geral</b></td>
                <td><?= number_format($grand_total); ?> </td>
                <td> 
                  <a href="finalizar_car.php" class="btn btn-info <?= ($grand_total>1)?"":"disabled"; ?>"><i class="fa fa-credit-card"></i>&nbsp;&nbsp;Finalizar Compra</a>
                </td>
              </tr>
          </tbody>  
        </table>
      </div>
    </div>
  </div>
  
</div>

 

action_car.php

<?php
session_start();
    require 'config_car.php'; //conecta ao BD
    if(isset($_POST['pid'])) {
        $pid = $_POST['pid'];
        $pname = $_POST['pname'];
        $pprice = $_POST['pprice'];
        $pimage = $_POST['pimage'];
        $pcode = $_POST['pcode'];
        $pqty = 1;

        $stmt = $conn->prepare("SELECT product_code FROM cart WHERE product_code=?");
        $stmt->bind_param("s",$pcode);
        $stmt->execute();
        $res = $stmt->get_result();
        $r = $res->fetch_assoc();
        $code = $r['product_code'];

        if(!$code){
            $query = $conn->prepare("INSERT INTO cart (product_name,product_price,product_image,qty,total_price,product_code) VALUES (?,?,?,?,?,?)");
            $query->bind_param("sssiss",$pname,$pprice,$pimage,$pqty,$pprice,$pcode);
            $query->execute();

            echo '<div class="alert alert-success alert-dismissible mt-2">
            <button type="button" class="close" data-dismiss="alert">&times;</button>
            <strong>Item adicionado ao seu carrinho!</strong>
            </div>';

        }
        else{

            echo '<div class="alert alert-danger alert-dismissible fixed-top">
            <button type="button" class="close" data-dismiss="alert">&times;</button>
            <strong>Item já está adicionado ao seu carrinho, você pode definir a quantidade no seu carrinho!</strong>
            </div>';

        }
    }

    if(isset($_GET['cartItem']) && isset($_GET['cartItem']) == 'cart_item'){
        $stmt = $conn->prepare("SELECT * FROM cart");
        $stmt->execute();
        $stmt->store_result();
        $rows = $stmt->num_rows;

        echo $rows;
    }


    /*REMOVER ITENS DO CARRINHO*/

    if(isset($_GET['remove'])){
        $id = $_GET['remove'];
        $stmt = $conn->prepare("DELETE FROM cart WHERE id=?");
        $stmt->bind_param("i",$id);
        $stmt->execute();

        $_SESSION['showAlert'] = 'block';
        $_SESSION['message'] = 'Produto removido do carrinho!';
        header('location:index_cart.php');
    }


    if(isset($_GET['clear'])){
        $stmt = $conn->prepare("DELETE FROM cart");
        $stmt->execute();
        $_SESSION['showAlert'] = 'block';
        $_SESSION['message'] = 'Todos os produtos foram removidos!';
        header('location:index_cart.php');
    }
     /* FIM REMOVER ITENS DO CARRINHO*/


    /* ADICIONAR OU DIMINUIR QTD PRODUTO CARRINHO*/
    if(isset($_POST['qty'])){
        $qty = $_POST['qty'];
        $pid = $_POST['pid'];
        $pprice = $_POST['pprice'];

        $tprice = $qty*$pprice;

        $stmt = $conn->prepare("UPDATE cart SET qty=?, total_price=? WHERE id=?")
        ;
        $stmt->bind_param("isi",$qty,$tprice,$pid);
        $stmt->execute();
    }
     /* FIM ADICIONAR OU DIMINUIR QTD PRODUTO CARRINHO*/


     /* FINALIZAR PEDIDO */
     if(isset($_POST['action']) && isset($_POST['action']) == 'order'){
         $name = $_POST['name'];
         $email = $_POST['email'];
         $phone = $_POST['phone'];
         $products = $_POST['products'];
         $grand_total = $_POST['grand_total'];
         $address = $_POST['address'];
         $pmode = $_POST['pmode'];

         $data = '';

         $stmt = $conn->prepare("INSERT INTO orders (name,email,phone,address,pmode,products,amount_paid) VALUES (?,?,?,?,?,?,?)");
         $stmt->bind_param("sssssss",$name,$email,$phone,$address,$pmode,$products,$grand_total);
         $stmt->execute();
         $data .= '<div class="text-center>
                        <h1 class="display-4 mt-2 text-danger">Obrigado!</h1>
                        <h2 class="text-success">Seu pedido foi realizado com sucesso</h2>
                        <h4 class="bg-danger text-light rounded p-2">Items Comprados : '.$products.'</h4>
                        <h4 class="bg-danger text-light rounded p-2">Seu nome : '.$name.'</h4>
                        <h4 class="bg-danger text-light rounded p-2">Seu E-mail : '.$email.'</h4>
                        <h4 class="bg-danger text-light rounded p-2">Seu telefone : '.$phone.'</h4>
                        <h4 class="bg-danger text-light rounded p-2">Valor total pago : '.number_format($grand_total,2).'</h4>
                        <h4 class="bg-danger text-light rounded p-2">Forma de pagamento : '.$pmode.'</h4>
                   </div>';
        echo $data;           
     }
    

?>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By joaovitor102
      $_SESSION['cart'] = MD5('@?#'.$resp['cpfCliente'].'@'.date("d-m-Y H:i:s")); a nota pega esses dados porem não esta armazenando no bdds
      <?php require_once '../App/auth.php'; require_once '../layout/script.php'; require_once '../App/Models/cliente.class.php'; require_once '../App/Models/vendas.class.php'; echo $head; echo $header; echo $aside; ?> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> Vendas </h1> <ol class="breadcrumb"> <li><a href="../"><i class="fa fa-dashboard"></i>inicia</a></li> <li class="active">Vendas</li> </ol> </section> <!-- Main content --> <section class="content"> <?php require '../layout/alert.php'; ?> <!-- Small boxes (Stat box) --> <div class="row"> <div class="box box-primary"> <!-- /.box-header --> <div class="box-body"> <div class="row"> <div class="box-body"> <div class="col-xs-12 col-sm-12"> <?php if(isset($_SESSION['msg']) != NULL) { echo $_SESSION['msg']; } ?> </div> </div> <div class="row"> <div class="box-body"> <div class="col-xs-12 col-sm-12"> <div class="table-responsive"> <table id="mytable" class="table table-bordred table-striped" border="2"> <?php $cartvd = $_SESSION['notavd']; $vendas = new vendas; $row = $vendas->notavd($cartvd); $idNota=$row[0]['idvendas']; $cliente = new cliente; $dados = $cliente->dadoscliente($row[0]['cliente_idCliente']); ?> <tr> <h1 style=""><b>Nota de Venda- Dentista do Sorriso</b></h1> <td><b>Numero da Nota: </b><?php echo $idNota; ?> </td> <td colspan="5"> <b>Cliente: </b><?php echo $dados['NomeCliente']; ?> </br><b>CPF:</b> <?php echo connect::format_CPF($dados['cpfCliente']); ?> </td> <tr> <tr> <td><b>Cod.</b></td> <td><b>Produto</b></td> <td><b>Qtde</b></td> <td><b>Valor Produto.</b></td> </tr> <?php $soma = 0; foreach ($row as $key) { $vendas = new vendas; $dadosItem = $vendas->dadosItem($key["iditem"]); $nomeProduto = $dadosItem['NomeProduto']; echo "<tr>"; echo '<td>' .$key["iditem"]. '</td>'; echo '<td>' .$nomeProduto. '</td>'; echo '<td>'. $key["quantitens"] . '</td>'; echo '<td>'; echo connect::format_moeda($key['valor']); echo '</td>'; echo "</tr>"; $soma = $soma + $key["valor"]; } ?> <tr> <td colspan="4">Data: <?php echo date('d M Y'); ?> </td> <td><h4><b>Total:</b></h4> <?php echo connect::format_moeda($soma); ?></td> </tr> </table> </div> </div> </div> </div> </div> </div> </div> <a href="./"><button class="btm btm-success">Voltar</button></a> </section> </div> <?php unset($_SESSION['msg'],$_SESSION['CPF'], $_SESSION['Cliente'], $_POST); echo $footer; echo $javascript; ?> <!-- Fim no codigo --> public function notavd($cart){ $query = "SELECT * FROM `vendas` WHERE `cart` = '$cart'"; if($this->result = mysqli_query($this->SQL, $query) or die (mysqli_error($this->SQL))){ while($row = mysqli_fetch_array($this->result)){ $out[] = $row; } } return $out; }//--notavd Estou com um problema com o foreach
    • By violin101
      Caros amigos, saudações...
       
      Estou com uma pequena dúvida. Preciso comparar data da seguinte forma:

      abertura do mês: 11/2019
      data das vendas: 01/11/2019 até 30/11/2019
       
      o formato para inserir no banco de dados a Abertura do Mês é date('m/Y') -------- corresponde a isso: 11/2019
      o formato para inserir no banco de dados a Data das Vendas é date('d/m/Y')  --- corresponde a isso: 01/11/2019 até 30/11/2019
       
      como faço para comparar a ABERTURA dos MESES com as DATAS de VENDAS ?
       
      Grato,
       
      Cesar
    • By granderodeo
      Olá tenho a página index.php e tenho a página product.php, ao clicar no produto na página inicial, quero que redirecione para página product.php mostrando os dados do determinado produto que cliquei, iniciei o código mais não está dando certo, Obrigado.
       
      index.php
      <?php if (is_array($products)) { foreach ($products as $id => $row) { ?> <div class="col-sm-6 col-md-4 col-lg-3 mb-2"> <div class="card-deck"> <div class="card p-2 border-secondary mb-2"> <a href="product.php?id=<?= $row['product_id'] ?>"> <div class="hover-image"> <img class="card-img-top border-secondary" src="images/<?= $row['product_image'] ?>"/> <a href="#"><span class="texto"></span></a> </div> </a> <h3 class="text-center"><?= $row['product_name'] ?></h3> <div class="text-center text-black rounded p-1" style="font-size: 20px;">Valor&nbsp;$<?= $row['product_price'] ?></div> <button class="btn btn-success btn-block" type="button" value="Add to cart" onclick="cart.add(<?= $row['product_id'] ?>);">Adicionar ao carrinho</button> </div> </div> </div> <?php } } else { echo "No products found."; } ?>  
      product.php
      <?php $products = $_GET["product_id"]; if (is_array($products)) { foreach ($products as $id => $row) { }}; $row['product_name'] ?>  
    • By 3agdeu
      Bom dia a todos.

      Quero saber se alguns dos sábios participantes saberia um forma que capturar um informação (constantemente atualizada) apresentada em uma aplicação java na tela. São os dados de variação de ações, nos respectivos sites de operações. Geralmente aparecem em um canto fixo ou ficam em um elemento que flutua sobre o gráfico da ação (penso que rodem em java).

      Posso interceptar e interpretar os sinais enviados ao monitor?

      Posso interceptar as atualizações da maquina java e/ou o script?

      Existe um programa para fazer a leitura de uma determinada parte da tela que fica constantemente se atualizando?

      Obrigado.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.