从日期字符串 PHP MySQL 开始的每个新年 [重复]

Posted

技术标签:

【中文标题】从日期字符串 PHP MySQL 开始的每个新年 [重复]【英文标题】:For each new year from date straing PHP MySQL [duplicate] 【发布时间】:2017-09-15 07:26:13 【问题描述】:

如何在phpmysql 中创建一个结果,例如显示2005 年,并对所有结果求和

示例输入

-------------------------
Date       \    Quantiti
-------------------------
12-05-2005 \      5
-------------------------
23-08-2005 \      8
-------------------------
11-02-2006 \      4
-------------------------
26-09-2006 \      2
-------------------------

示例输出

---------------------------
year    \    Total
---------------------------
2005    \     13
---------------------------
2006    \     6
---------------------------

<?php
$sql = "SELECT * FROM mytable ORDER BY date DESC"; 
$result = $conn->query($sql);

if ($result->num_rows > 0) 

    while($row = $result->fetch_assoc()) 
        $date = $row["date"];
        $quantiti = $row["quantiti"];

        // here i need code for each new year 
    
     else 


    
?>

【问题讨论】:

大写字母用于标题。您能否编辑您的问题并使其可读。 你应该看看YEAR()SUM():dev.mysql.com/doc/refman/5.7/en/group-by-functions.html 【参考方案1】:

您可以使用GROUP BY YEAR(date) 将年份分组,SUM() 所有具有相同年份的数量。像这样的简单查询应该可以完成这项工作

SELECT SUM(Quantiti) as `total`, 
       YEAR(date) as `year` 
FROM mytable 
GROUP BY YEAR(date)

请注意,根据您的示例输出,返回结果名为 totalyear

【讨论】:

【参考方案2】:

您可以使用 SUM 来汇总数量,使用 GROUP BY 来按年份对结果进行分组。

满足您需求的 sql 查询是:

SELECT YEAR(Date), SUM(Quantiti) 
FROM mytaple
GROUP BY YEAR(Date)

所以你的代码是:

<?php
$sql = "SELECT YEAR(Date) as y, SUM(Quantiti) as q FROM mytaple GROUP BY YEAR(Date)"; 
$result = $conn->query($sql);

if ($result->num_rows > 0) 

    while($row = $result->fetch_assoc()) 
        $date[] = $row["y"];
        $quantiti[] = $row["q"];
    
for($i<0; $i<count($date);$i++) 
        echo $date[$i]."/".$quantiti[$i];
    
     else 


    

    ?>

【讨论】:

感谢这个想法是“GROUP BY”。但问题是我不知道如何在我的 PHP 代码中调整它:( 感谢它现在的工作,感谢它【参考方案3】:

Group by With year and Month 将实现这一点

按年(日期)、月(日期)分组

【讨论】:

以上是关于从日期字符串 PHP MySQL 开始的每个新年 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从PHP中的两个日期范围内提取每个星期一和每两周一次的星期一?

从 MySQL 设置一个数组,然后将每个值设置为变量 PHP

MySQL中如何获得指定日期中月份的第一天是周几?

MySQL 排序规则类型是不是需要匹配 PHP 页面字符集类型?

PHP MySQL 日期差异

从日期选择器到 mysql/php 的奇怪日期格式