Ir para conteúdo
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;           
     }
    

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.