购物车不会让我在数据库中添加两个具有相同ID的产品

时间:2012-02-23 09:35:20

标签: php mysql shopping-cart

我有一个购物车系统工作正常,直到我意识到如果你添加两个相同的产品,他们都进入购物车,但只有一个添加到数据库时,用户点击购买。

不确定这是完全相同的。我的代码是经过设计的,因此有一个带有POST [购买]的IF语句的逻辑后端:

if($_POST['purchase']) {

        foreach($cart->get_contents() as $item) {

            $sql="INSERT INTO wp_scloyalty_orders VALUES (".$user_id.", ".$item['id'].", NOW())";

            if($result=mysql_query($sql)){

                $confpurchase = '?confpurchase=success&id='.$item['id'].''; //USING THE URL FOR MESSAGE PASSING... ONLY IF THE PRODUCT WAS INSERTED INTO THE DATABASE!

            }

        }

        $cart->empty_cart();

        unset($_SESSION['cart']); 

        header("Location: ".$_SERVER['PHP_SELF']."/my-account".$confpurchase);
        exit;


}       

是否与mysql这样的东西一样,不要让两个相同的行在一个循环中输入数据库?如果用户ID和itemID多次添加相同的产品,则它们将是相同的。

谢谢!

EDIT --------------------------------

好吧我已经意识到我的错误,当循环浏览购物车内容时,我也想要提取itemID和itemQTY(数量)。我想这是为了停止多次显示相同的ID。这仍然给我一个问题,即无法将更多相同的项目输入数据库:/

foreach($cart->get_contents() as $item1) {          
    echo $item1['id']; 
    echo $item1['qty']; 

}

例如,如果有两个ID为100的产品,则返回1002。

谢谢大家:)

2 个答案:

答案 0 :(得分:1)

听起来你在数据库中的某个字段上有一个UNIQUE约束。

答案 1 :(得分:0)

我不知道您的特定购物车是如何工作的,但从逻辑上讲,您应该有一个数量列并将其更改为2等。

EDIT 刚看到你的编辑。忽略这一点。