如何在购物车或数据库中插入相同尺寸的不同商品?

时间:2018-09-13 10:40:01

标签: php mysql

我正在使用PHP和MySQL创建一个基本的电子商务站点。当我在产品页面上单击add to cart时,它将添加到购物车,但是如果我单击相同的产品但尺寸不同,它将不会插入购物车。有人可以帮我解决我的问题吗?我是PHP和MySQL的初学者。

这是我的代码:

if (isset($_POST['add_cart'])) {
  $the_product_id = $_GET['p_id'];
  $size = $_POST['size'];
  $quantity = $_POST['quantity'];
  $query = "SELECT * FROM carts WHERE cart_user_id='{$user_id}' AND cart_product_id=' {$the_product_id}'  ";
  $select_from_product = mysqli_query($connection, $query);

  while ($row = mysqli_fetch_assoc($select_from_product)) {


    $cart_product_id = $row['cart_product_id'];
    $cart_product_size = $row['cart_product_size'];


  }

  if ($cart_product_id == null || $cart_product_id == ' ' && $cart_product_size == null) {
    $addquery = "INSERT INTO carts(cart_user_id, cart_product_id, cart_product_quantity, cart_product_size) VALUES('{$user_id}','{$the_product_id}','{$quantity}','{$size}')";
    redirect("cart.php");
    $add_to_cart = mysqli_query($connection, $addquery);

    $p_query = "UPDATE product SET product_quantity= product_quantity-$quantity WHERE product_quantity > 0 and product_id = '{$the_product_id}'";
    $up_query = mysqli_query($connection, $p_query);
  } else {
    echo "This product already to your cart";
  }

2 个答案:

答案 0 :(得分:0)

您正在使用产品ID和用户ID检查购物车中的产品是否存在。 $query = "SELECT * FROM carts WHERE cart_user_id='{$user_id}' AND cart_product_id=' {$the_product_id}' "; 因此,如果您是第一次选择产品,则会添加该产品。第二次当您尝试将产品添加到购物车时,已经有一个产品具有相同的产品ID,但购物车中的尺寸却不同。因此,以下条件永远无法满足。 if($cart_product_id == null || $cart_product_id == ' ' && $cart_product_size == null ){

您需要在第一个查询的where子句中包含大小,即 $query = "SELECT * FROM carts WHERE cart_user_id='{$user_id}' AND cart_product_id=' {$the_product_id}' ";

也应在查询后进行重定向。但这是另一个问题。 代码中还有其他问题。因此,此答案与您的特定问题有关。

答案 1 :(得分:0)

python manage.py migrate