我有一个准备好的语句,它产生一个价格列表。价格是由商品价值乘以数量决定的。
if ($select = $db -> prepare("SELECT value, quantity FROM items"))
{
$select -> execute();
$select -> bind_result($value, $quantity);
while ($select -> fetch())
{
$subtotal = $value * $quantity;
echo $subtotal.'<br />';
}
$select -> close();
}
// I want to put the $total here.
输出一个数字列表:
100
50
200
1.50
我想以某种方式将每个$subtotal加起来,并将它们放入我准备好的语句之外的另一个变量"$total"中。这是可能做到没有做数学查询内?
在预备语句外声明一个变量$total = 0
,并在while()
循环中使用它来计算总价,如下所示:
$total = 0;
if ($select = $db -> prepare("SELECT value, quantity FROM items")){
$select->execute();
$select->bind_result($value, $quantity);
while($select -> fetch()){
$subtotal = $value * $quantity;
$total += $subtotal;
}
$select->close();
}
echo $total;
旁注:正如@Fred-ii和@JuanTomas提到的,由于您使用的是没有任何占位符的预处理语句,因此您可以将->prepare()
更改为->query()
,同时完全删除->execute()
语句,这对您的代码没有任何影响。