簡體   English   中英

如何在PHP中添加多個項目在購物車中

[英]how to add multiple items in cart in php

我已經在php中創建了一個購物車,當用戶點擊添加到購物車按鈕將用戶重定向到購物車頁面時,該購物車會將商品添加到購物車。 購物車多次添加1個產品,但是當我添加另一個產品時,它增加了購物車中舊產品的數量,而不是鋪設2個產品。 下面是我的cart.php頁面

 <?php // Start Session session_start(); // Application library ( with ShopingCart class ) require __DIR__ . '/library.php'; $app = new ShopingCart(); if(isset($_POST['add_to_cart'])) { $app->addToCart($_POST['id']); } if (isset($_GET['id_to_remove']) && isset($_GET['id_to_remove']) != '') { $app->removeProductFromCart($_GET['id_to_remove']); } ?> <?php if(isset($_SESSION['shopping_cart']) && count($_SESSION['shopping_cart']) > 0) { $entertainment = $_SESSION['shopping_cart']; echo ' <table class="table table-hover table-bordered"> <thead> <tr> <th scope="col">#</th> <th scope="col">Title</th> <th scope="col">Quantity</th> <th scope="col">Price</th> <th scope="col" width="100">Action</th> </tr> </thead>'; $item_number = 1; $total = 0; foreach ($entertainment as $product) { echo ' <tbody> <tr> <th scope="row">'. $item_number .'</th> <td>' . $product['title'] . '</td> <td>'.$product['quantity'].'</td> <td>₹ '. $product['price']. '</td> <td> <a href="cart.php?id_to_remove=' . $item_number . '" class="btn btn-danger btn-sm">X</a> </td> </tr> </tbody> '; $total += ((int)$product['price'] * $product['quantity']); $item_number++; } echo ' <tr> <th colspan="4" align="right"> Total: </th> <td> ₹ '. $total .' </td> </tr> </table>'; } else { echo '<div class="alert alert-primary" role="alert"> Shopping cart is empty, visit <a href="index.php" class="alert-link">products</a> page to add product into shopping cart. </div>'; } ?> 

下面是我的library.php

 <?php // load database connection script include("database_connection.php"); /* * Tutorial: PHP MySQL Shopping cart * * Page: Application library * */ class ShopingCart { protected $db; function __construct() { $this->db = DB(); } /** * get products list * * @return array */ public function getProducts() { $query = "SELECT * FROM `entertainment`"; if (!$result = mysqli_query($this->db, $query)) { exit(mysqli_error($this->db)); } $data = []; if (mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; } } return $data; } /** * get given product details * * @param [integer] $id * @return array */ public function getProductDetails($id) { $id = mysqli_real_escape_string($this->db, $id); $query = "SELECT * FROM `entertainment` WHERE `id` = '$id'"; if (!$result = mysqli_query($this->db, $query)) { exit(mysqli_error($this->db)); } $data = []; if (mysqli_num_rows($result) > 0) { while ($row = mysqli_fetch_assoc($result)) { $data['id'] = $row['id']; $data['title'] = $row['title']; $data['price'] = $row['vendor_price']; $data['quantity'] = 1; } } return $data; } /** * Add new product into the cart * * @param [integer] $id * @return void */ public function addToCart($id) { $product = $this->getProductDetails($id); $isFound = false; $i = 0; if (!isset($_SESSION['shopping_cart']) || count($_SESSION['shopping_cart']) < 1) { $_SESSION['shopping_cart'] = array(0 => $product); } else { foreach ($_SESSION['shopping_cart'] as $item) { $i++; foreach ($item as $key => $value) { if ($key == "id" && $value == $id) { array_splice($_SESSION['shopping_cart'], $i - 1, 1, array([ 'id' => $item['id'], 'title' => $item['title'], 'price' => $item['vendor_price'], 'quantity' => $item['quantity'] + 1, ])); $isFound = true; } } } if ($isFound == false) { array_push($_SESSION['shopping_cart'], $product); } } } /** * remove existing product from the cart * * @param [integer] $id * @return void */ public function removeProductFromCart($id) { unset($_SESSION['shopping_cart'][$id - 1]); } } ?> 

一個項目正在添加到購物車,並且可以多次添加1個項目,但是當我嘗試添加不同的項目時,不添加它,而是更新上一個項目的數量,如下圖所示

在此輸入圖像描述

我需要在購物車中列出用戶點擊另一個的項目。 誰能告訴我怎么做? 將是一個很大的幫助

也許$ _POST ['id']每次都是一樣的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM