php导出csv我要求和价格列
我有一张表,上面有物品,说明,价格。 当我以csv形式导出时,我希望对价格列求和,并像小计一样放入最后一行。csv生成罚款。。我需要在价格栏加总php导出csv我要求和价格列,php,mysql,csv,Php,Mysql,Csv,我有一张表,上面有物品,说明,价格。 当我以csv形式导出时,我希望对价格列求和,并像小计一样放入最后一行。csv生成罚款。。我需要在价格栏加总 header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=' . $type . '-' . date('Y-m-d') . '.csv'); $output = fopen('php://
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=' . $type . '-' . date('Y-m-d') . '.csv');
$output = fopen('php://output', 'w');
foreach ($price_list as $car) {
$i++;
$rows[$i][id] = $car->id;
$text = $car->item;
$rows[$i][des]=$car->des;
$rows[$i][text] = preg_replace('/\s+/S', " ", $text);
$rows[$i][price]=$car->price;
$rows[$i][stocks]=$car->stocks;
$rows[$i][edited_dt] = $car->edited_dt;
}
foreach ($rows as $row) {
fputcsv($output, $row);
}
//质疑
选择id、采购类型、项目、des、价格、价格单位、库存、库存单位、创建单位、创建单位、编辑单位 从价格列表中,状态=1
按id desc下单设置一个
$total=0循环前的代码>变量。在循环内,添加$total+=$car->price代码>。然后在循环后添加最后一行。在循环中添加sum,然后在包含sum行的循环外部添加新列
$price_sum = 0;
foreach ($price_list as $car) {
$i++;
$rows[$i][id] = $car->id;
$text = $car->item;
$rows[$i][des]=$car->des;
$rows[$i][text] = preg_replace('/\s+/S', " ", $text);
$rows[$i][price]=$car->price;
$price_sum += $car->price;; //sum price here
$rows[$i][stocks]=$car->stocks;
$rows[$i][edited_dt] = $car->edited_dt;
}
$i++;
$rows[$i][id] = "";
$rows[$i][des]="";
$rows[$i][text] ="";
$rows[$i][price]=$price_sum; //add sum here
$rows[$i][stocks]="";
$rows[$i][edited_dt] ="";
foreach ($rows as $row) {
fputcsv($output, $row);
}
假设您不想直接在PHP代码中进行任何聚合,那么您的问题实际上有一个纯MySQL解决方案。考虑下面的查询:
SELECT
id, p_type, item, des, price, price_unit, stocks, stocks_unit, created_dt,
created_by, edited_dt,
SUM(price) AS total_price
FROM price_list
WHERE state = 1
GROUP BY
id, p_type, item, des, price, price_unit, stocks, stocks_unit, created_dt,
created_by, edited_dt
WITH ROLLUP
HAVING
(p_type IS NOT NULL AND item IS NOT NULL AND des IS NOT NULL AND
price IS NOT NULL AND price_unit IS NOT NULL AND stocks IS NOT NULL AND
stocks_unit IS NULL AND created_dt IS NULL AND created_by IS NOT NULL AND
edited_dt IS NOT NULL) OR
id IS NULL;
只需迭代此结果集,当您点击最后一条记录时,只需访问total_price
列,该列将是价格的总和。除此记录是结果集中的最后一条记录外,此记录的标记是除total\u price
之外的任何列都是null
下面是一个简化演示的链接,演示了此汇总技巧在整个表格上的工作原理:
从价格列表中选择id、p\u类型、项目、des、价格、价格单位、股票、股票单位、创建人、编辑人,其中state=1 order by id descI在下面提供了一个选项,该选项使用汇总计算MySQL内的总价格。