У меня есть система корзины покупок, которая работает нормально, пока я не понял, что если вы добавляете два одинаковых продукта, они оба входят в корзину, но только один добавляется в базу данных, когда пользователь нажимает кнопку покупки.
Не уверен, что именно это делать.Мой код спроектирован таким образом, что есть логическая часть с операторами 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.
Спасибо людям:)