Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用数据库值进行计数_Php_Mysql_Pdo - Fatal编程技术网

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