gpt4 book ai didi

php - 当用户结账以比较购物车数量与数据库数量时的最终检查仅返回一条记录,即使购物车中有多个商品

转载 作者:行者123 更新时间:2023-11-29 06:41:25 26 4
gpt4 key购买 nike

当用户结账时,我试图根据数据库检查我的整个购物车数组,以确保购物车中的商品仍然可用,并且另一个用户没有购买中间的最后一个商品。但我很难弄清楚获得不止一张记录。在我开始检查购物车和数据库中的内容之前,我只是想在这个阶段获取数据库中每个产品 ID 的数量。

这是我的 Controller ,它只是将数据库调用中的数据放入 $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 循环还是现在的位置,即使购物车中有多个商品,我也只会返回一个结果。

最佳答案

您不断地用您检查的最后一个产品覆盖 $results 变量。如果您想保留购物车中所有产品的数据,您可以将信息存储在数组中。像这样的事情:

$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);

$results = [];

foreach($_SESSION['cart_array'] as $cart) {
$prod_id = $cart['prod_id'];
$quantity = $cart['quantity'];
$results[] = $this->db->resultSet();
}

return $results;

现在,在您的 Controller 中,您可以循环遍历数组并检查金额是否仍然正确。 (或者也许您可以在函数中进行检查,您通常不希望 Controller 中有太多逻辑)

关于php - 当用户结账以比较购物车数量与数据库数量时的最终检查仅返回一条记录,即使购物车中有多个商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51437949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com