当一个用户 checkout 以确保他们购物车中的项目仍然可用,而另一个用户没有购买介于两者之间的最后一个项目时,我正在尝试根据数据库检查我的整个购物车数组。但是我很难找到一张以上的唱片。在我检查购物车和数据库中的内容之前,我只是想在这个阶段获取数据库中每个产品id的数量。
这是我的控制器,它只是将数据库调用中的数据放入$totals变量。
if(isset($_SESSION['cart_array'])) {
$response = array();
$totals = $this->ProductFendModel->finalDbQtyCheckoutCheck();
$response['cart'] = $totals;
echo json_encode($response);
}
这是模型中的数据库查询:
$purchased = '0000-00-00';
$this->db->query("SELECT COUNT(`product_id`) as `vouchersLeft`, `product_id` FROM `vouchers` WHERE `product_id` = :product_id AND `purchased` = :purchased");
$this->db->bind(":purchased", $purchased);
$this->db->bind(":product_id", $prod_id);
foreach($_SESSION['cart_array'] as $cart) {
$prod_id = $cart['prod_id'];
$quantity = $cart['quantity'];
}
$results = $this->db->resultSet();
return $results;
无论我把$results放在foreach循环中还是放在它现在的位置,我都只得到一个结果,即使购物车中有多个项目。
1条答案
按热度按时间yc0p9oo01#
您不断地用最后检查的产品覆盖$results变量。如果您想保留购物车中所有产品的数据,可以将信息存储在一个数组中。像这样:
现在,在控制器中,您可以在数组中循环,并检查数量是否仍然正确(或者您可以在函数中正确地执行检查,您通常不希望控制器中有太多逻辑)