我正在使用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";
}
答案 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