【问题标题】:MYSQL and PHP calculate total price of orders table every day and every month, populate new summary tableMYSQL和PHP每天和每月计算订单表的总价,填充新的汇总表
【发布时间】:2013-12-17 06:27:36
【问题描述】:

我的数据库中有订单表(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 上的总天数。

我想在一年中的每一天自动执行此操作。因为我需要每月总计。 我需要 30/31 行,每个 30/31 总计天

每天我都必须执行这个脚本。我可以将其修改为每月每次询问每月总计。我觉得我解释的不是很好……

另一个:我可以在一天内完成,我可以在今天之前的一年中完成吗?

我用全年日期和这个字段(日期,价格)制作了另一个表格 我想为新问题填充这个新表..

【问题讨论】:

    标签: php mysql populate


    【解决方案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 计数)或格式化日期 date_format 和 `%d- %m-%Y 表示 31-12-2013 (dd-mm-yyyy) 等格式

    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']$row55['date'] 循环查看一年中的某一天和格式化的日期的结果。

    或者根据 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

    【讨论】:

    • 谢谢,如何在我的新表格中填写每天的所有价格?埃斯。我想要这个:10-06-2013 | 324.00 | 11-06-2013 | 542.50 ecc...对于今天之前的所有日子。
    • 我的第二个例子是每天的价格总和。但是现在您想更改整个表格的布局?
    • 是的,我需要用所有 2013 天填充新表。布局:天 | days_total
    • 您希望days 成为一年中的某一天还是格式化后的日期:dd-mm-yy
    【解决方案2】:

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

    例如: SELECT SUM(price) as total FROM orders WHERE 1 GROUP BY YEAR(delivery), MONTH(delivery), DAY(delivery) ORDER BY delivery

    【讨论】:

    • 在您的版本中,id_order 不再有意义,因为您一直在分组。
    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多