Php 使用数据库值进行计数
我有一个数据库,里面有这样的产品:Php 使用数据库值进行计数,php,mysql,pdo,Php,Mysql,Pdo,我有一个数据库,里面有这样的产品: +----+--------+-------+ | ID | Name | Price | +----+--------+-------+ | 1 | Burger | 3,96 | +----+--------+-------+ | 2 | Fries | 1,49 | +----+--------+-------+ 我从JS中获取一个id数组,并将其放入PHP脚本中,现在我想在单个变量中获取总价格 我使用PDO方法获取数据,但我只将它们发送
+----+--------+-------+
| ID | Name | Price |
+----+--------+-------+
| 1 | Burger | 3,96 |
+----+--------+-------+
| 2 | Fries | 1,49 |
+----+--------+-------+
我从JS中获取一个id数组,并将其放入PHP脚本中,现在我想在单个变量中获取总价格
我使用PDO方法获取数据,但我只将它们发送到我的JS。我实际上如何在PHP中使用这些数据呢
$get = $db->prepare("SELECT price FROM products WHERE id IN ('$idString')");
$get->execute();
$rows = $get->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rows);
如果你想得到所有价目表的总和,你可以简单地在查询中添加sum函数,如
$get = $db->prepare("SELECT sum(price) FROM products IN ('$idString')");
$get->execute();
$rows = $get->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rows)
希望这能有所帮助。如果您只需要总数(不需要其余数据),您可以在SQL中完成:
$get = $db->prepare("SELECT SUM(price) as total FROM products WHERE id IN ($idString)");
$get->execute();
$row = $get->fetch(PDO::FETCH_ASSOC);
echo $row['total'];
或者,您可以迭代行并生成总计:
$get = $db->prepare("SELECT price FROM products WHERE id IN ($idString)");
$get->execute();
$rows = $get->fetchAll(PDO::FETCH_ASSOC);
$total = 0;
foreach ($rows as $row) {
$total += $row['price'];
}
echo $total;
我想你说的是AJAX,看看吧,网上有一百万个教程如果问题是关于做加法/数学,那么就用
SUM()
,n'est-ce pas?…然后,答案开始像桔子一样滚滚而来。”.也许如果你向我们展示你的代码中更多的内容,我们就会明白你实际上想做什么。您的描述对我们没有多大帮助。而且“$idString”
(与问题中的原始代码相同)应该是id的数组?谢谢!我刚刚运行了这个,但是我得到了错误代码500,返回了内部服务器错误。我所做的唯一改变是包括了我的连接文件。有什么线索吗?当我测试时,我使用了idString作为“1,2”不错,Alvaro,你称之为lol。我想你有一个bunk SQL,在$idString
值周围加了单引号(除非我加了什么东西,因为这很容易-。-)来更新答案。我想你忘了从id所在的产品($idString);?