如何使用php汇总mysql中的所有值

时间:2013-11-29 09:41:20

标签: php mysql

我的表值是:

id stock
1   7|8
2   80|50|30

我的查询是

我使用了PHP函数

function numofQuantity() {

    $sql = "SELECT sum(stock) as quantity FROM products";
    $result = dbQuery($sql);
    $data=mysql_fetch_assoc($result);
    return $data['quantity'];

}

这里显示的结果是87。

如何将所有值相加?谢谢

3 个答案:

答案 0 :(得分:4)

永远不要在一列中存储多个值!

如你所见,这只会导致问题。您应该更改数据库设计。使用另一个表来存储股票:

stock table
-----------
id
product_id
stock

你可以像这样总结股票

SELECT p.id, sum(s.stock) as quantity 
FROM products p
inner join stock s on s.product_id = p.id
group by p.id

答案 1 :(得分:2)

现在在Mysql中很难做到。你可以像下面这样做:

function numofQuantity() {

    $sql = "SELECT stock FROM products";
    $result = dbQuery($sql);
    $data=mysql_fetch_assoc($result);
    $arrayVal = explode("|", $data['stock']);
    return array_sum($arrayVal)

}

了解更多信息:http://us3.php.net/array_sum

答案 2 :(得分:1)

首先,如果您希望对列中的各个值执行任何操作,则应规范化数据库。

如果没有规范化,您将需要PHP的支持(PDO示例):

$sum = 0;
$res = $db->query('SELECT stock FROM products');
foreach ($res->fetchAll(PDO::FETCH_COLUMN) as $stocks) {
    $sum += array_sum(explode('|', $stocks));
}

echo $sum;