从日期字符串 PHP MySQL 开始的每个新年 [重复]
Posted
技术标签:
【中文标题】从日期字符串 PHP MySQL 开始的每个新年 [重复]【英文标题】:For each new year from date straing PHP MySQL [duplicate] 【发布时间】:2017-09-15 07:26:13 【问题描述】:如何在php
或mysql
中创建一个结果,例如显示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)
请注意,根据您的示例输出,返回结果名为 total
和 year
。
【讨论】:
【参考方案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