Корзина покупок не позволит мне добавить два продукта с одинаковым идентификатором в базу данных - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть система корзины покупок, которая работает нормально, пока я не понял, что если вы добавляете два одинаковых продукта, они оба входят в корзину, но только один добавляется в базу данных, когда пользователь нажимает кнопку покупки.

Не уверен, что именно это делать.Мой код спроектирован таким образом, что есть логическая часть с операторами IF с POST [покупка]:

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, не позволяющим двум одинаковым строкам вводиться в базу данных водин цикл или что-то?Идентификатор пользователя и itemID будут одинаковыми, если они добавят один и тот же продукт более одного раза.

Спасибо!

РЕДАКТИРОВАТЬ --------------------------------

ОК, я понял свою ошибкуПри циклическом просмотре содержимого корзины вы должны указать itemID и itemQTY (количество).Я предполагаю, что это останавливает один и тот же идентификатор, показанный более одного раза.Это по-прежнему вызывает у меня проблему невозможности ввода большего количества одних и тех же предметов в базу данных: /

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

}

Например, если есть два продукта с идентификатором100, это с эхом 1002.

Спасибо людям:)

Ответы [ 2 ]

1 голос
/ 23 февраля 2012

Похоже, у вас есть УНИКАЛЬНОЕ ограничение на одно из этих полей в вашей БД.

0 голосов
/ 23 февраля 2012

Я не знаю, как работает ваша конкретная корзина, но по логике вы должны иметь столбец количества и изменить его на 2 и т. Д.

РЕДАКТИРОВАТЬ Только что увидели ваше редактирование.Игнорировать это.

...