【发布时间】:2017-06-09 09:17:23
【问题描述】:
我正在尝试使用 foreach 保存数组中的数据,但每次只保存数组的最后一个元素。
这是我的代码:
public function demo($cakeId, $percent) {
$query = $this->dbh->prepare("SELECT price, price * $percent / 100 as dprice FROM prices WHERE cake_id = ? ");
$query->execute(array($cakeId));
$prices = $query->fetchAll(\PDO::FETCH_ASSOC);
foreach ($prices as $key => $value) {
$d_amount = $value['dprice'];
$price = $value['price'];
$final_price = $price - $d_amount;
}
$query2 = $this->dbh->prepare("UPDATE prices SET discount_price = ? WHERE cake_id = ?");
$query2->execute(array($final_price,$cakeId));
$return['data'] = [];
$return['message'] = "Discount Added";
$return['msgType'] = true;
return $return;
}
$prices 是一个包含所有价格的数组,但是当我在循环中使用$prices 时,它只返回最后一个元素。
请帮我解决这个问题。
【问题讨论】:
-
where更新查询中的条件??? -
是的,有一个 where 条件..
-
@UtpalSarma 单行更新了多少价格?现在您也无需在逻辑方面检查任何编码问题