MYSQL和PHP每天和每月计算订单表的总价格,填充新的汇总表

时间:2013-12-01 14:29:44

标签: php mysql populate

我的数据库上有订单表(id_order,price,desc,delivery) 我需要计算每天的总价

我用这个

$date = date("Y-m-d"); 

$query55 = "SELECT id_order, price FROM orders WHERE delivery LIKE '%$date%'";
$result55 = mysql_query($query55) or die(mysql_error());

while ($row55 = mysql_fetch_array($result55))
{
$currency = $row55['id_currency'];
$id = $row55['id_order'];

    if ($currency == "1")
{
    echo '
        <tr>
        <td style="width: 120px;">' . $id_order . '</td>
        <td style="width: 120px;">EUR</td>
        <td style="width: 170px;">' . $row55['price'] . '</td>
        </tr>

';
        $somma_paid += $row55['price'];

}

并且有效

最后,我在变量$ somma_paid上有一整天。

我想在一年中的每一天都自动完成。我需要montly总计。 我需要30/31行,每天30/31总计

每天我都必须执行这个脚本。我可以修改它,每个月每次都要求montly总计。我认为我没有很好地解释它......

另一个:我可以在一天之内完成它,我可以在今天之前全年都这样做吗?

我制作了另一张表,其中包含所有年份日期和此字段(日期,价格) 我想在新表中填写新的问题..

2 个答案:

答案 0 :(得分:1)

您可能希望在一年中的某一天进行分组。最好的方法就是这样:

SELECT id_order, price FROM orders WHERE 1 GROUP BY YEAR(`delivery`),
MONTH(`delivery`), DAY(`delivery`) ORDER BY `delivery`

所以,如果你想每天得到一笔钱:

SELECT SUM(price) FROM orders WHERE 1 GROUP BY YEAR(`delivery`),
MONTH(`delivery`), DAY(`delivery`) ORDER BY `delivery`

或者,如果您希望使用日期格式化结果,则可以将date_format%j一起用于一年中的某一天(从001到366计数)或格式化日期{{1}使用`%d-%m-%Y表示格式为31-12-2013(dd-mm-yyyy)

date_format

现在,您可以使用SELECT SUM(price), DATE_FORMAT(`delivery`,'%j') as `dayoftheyear`, DATE_FORMAT(`delivery`,'%d-%m-%Y') as `date` FROM `orders` WHERE 1 GROUP BY YEAR(`delivery`), MONTH(`delivery`), DAY(`delivery`) ORDER BY `delivery` $row55['dayoftheyear']在一年中的某一天和格式化的日期循环显示结果。

或者根据w3schools文档定义自己的格式(更容易阅读):http://www.w3schools.com/sql/func_date_format.asp或mysql文档:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

答案 1 :(得分:0)

@luceos 你不会使用和函数吗?

EG: SELECT SUM(价格)作为总订单来自WHERE 1 GROUP BY YEAR(交货),MONTH(交货),DAY(交货)ORDER BY交货