PHP中对MySQL查询结果按物品汇总数量的实现方法
如何汇总MySQL查询结果中的物品数量?
我来帮你搞定这个物品数量汇总的问题,有两种实用的实现方式,你可以根据自己的场景选择:
方法一:在数据库查询阶段直接汇总(优先推荐)
数据库本身就擅长做聚合计算,直接在SQL里处理效率更高,尤其是数据量大的时候。你只需要修改查询语句,用GROUP BY分组,再配合SUM()函数求和:
SELECT przedmiot, SUM(ilosc) AS total_ilosc FROM 你的表名 -- 替换成实际的表名 GROUP BY przedmiot;
然后对应的PHP代码就可以直接输出汇总后的结果了:
while ($row = mysqli_fetch_array($lista)) { echo $row['przedmiot'] . ":" . $row['total_ilosc'] . '<br>'; }
这样数据库会直接返回已经汇总好的每组物品的总数量,不需要PHP再额外处理。
方法二:在PHP代码层面处理结果
如果因为某些原因没法修改SQL查询,那可以在PHP里先把数据存到数组里累加:
// 初始化一个空数组用来存储汇总数据 $summary = []; // 循环读取查询结果,累加数量 while ($row = mysqli_fetch_array($lista)) { $itemName = $row['przedmiot']; $itemQty = $row['ilosc']; if (isset($summary[$itemName])) { // 物品已存在,累加数量 $summary[$itemName] += $itemQty; } else { // 物品第一次出现,初始化数量 $summary[$itemName] = $itemQty; } } // 输出最终的汇总结果 foreach ($summary as $item => $totalQty) { echo $item . ":" . $totalQty . '<br>'; }
这种方式适合数据量不大的场景,要是数据很多的话,还是方法一的效率更高哦。
内容的提问来源于stack exchange,提问作者Krystian
相关产品推荐
相关产品推荐

