按日期汇总值

时间:2010-11-04 07:21:08

标签: php mysql

我已阅读教程,搜索论坛2周,但未找到我需要的帮助。我现在跳进去问我的问题......

我是这个舞台的新手,所以我尊重你的态度。

我家里有2台太阳能逆变器,每台都有一个RS232数据端口,现在通过IP转换器连接到我的家庭网络,将每小时的电量数据上传到一个简单的网站我做了,所以我可以看到我在工作的时间里发生了什么。信息将传递到我的FTP站点,数据完全落入表中。我试图让PHP和MySQL代码将数据列入网页上的表单/表格。对于这个项目,我在家用PC上设置了Dreamweaver和测试服务器,以实现这一目标。 Web主机MySQL上的所有数据与测试服务器中的相同(除了主机,名称和密码之外,它可以正常工作)。

我有一个基本的MySQL表......

+---------+----------+------------+---------+------------+----------+
| Unit ID |  Date    |    Time    |  Power  |  Volts     |  Current |
+---------+----------+------------+---------+------------+----------+
|    1    |YYYY-MM-DD|  12:00:00  |  560    |   XXXX     |   XXXX   |
+---------+----------+------------+---------+------------+----------+
|    1    |YYYY-MM-DD|  13:00:00  |  560    |   XXXX     |   XXXX   |
+---------+----------+------------+---------+------------+----------+
|    2    |YYYY-MM-DD|  12:00:00  |  490    |   XXXX     |   XXXX   |
+---------+----------+------------+---------+------------+----------+

Etc....

我可以使用......

来计算所有“Power”行的总“功率”
<?php
$con = mysql_connect("localhost","NAME","PASWORD");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("inverters", $con);
$qry = mysql_query(" SELECT SUM(Power) AS total FROM feed "); 
$row = mysql_fetch_assoc($qry); 
echo $row['total']; 
mysql_close($con);
?>

我已经尝试了几个星期来获得“当前的力量”,月份力量等......

我想过有一个“本周”,但是上帝只知道需要多长时间......哈哈哈

如网站上所示。

+-----------+----------------+-----------------+-----------------+
| Today (W) |  This Month    |    This Year    |  Lifetime Power |  
+-----------+----------------+-----------------+-----------------+
|????????| ??????????|???????????|----working----| 
+-----------+----------------+-----------------+-----------------+

对于今天,我尝试了这个,但它不起作用......

$query = mysql_query("SELECT SUM(Power) ORDER BY(Time) CURDATE(), AS 'day_total' FROM feed ");
$result = mysql_fetch_array($query);
$daytotal = $result["day_total"];
echo $row['day_total'];

今年,我试过这个,但它不起作用......

$query = mysql_query("SELECT SUM(Power) AS year_total FROM feed WHERE YEAR(date) = YEAR(CURDATE());");
$result = mysql_fetch_array($query);
$yeartotal = $result["year_total"];

当我正在阅读和阅读时,我还没到月份。在线我看到如何获取用户名,他们注册的时间,以及每年或每月访问点击次数等,但没有一个对我的情况有所帮助。我想我在PHP和MySQL网站上读的越多,我就越愚蠢(你可以从上面的代码中看到。

使用Google查询如何获取当前日期只会告诉我如何连续输入当前日期,而不是如何汇总当天的值。

我非常荣幸能够帮助我学习和运作。

谢谢,

艾伦

2 个答案:

答案 0 :(得分:1)

每天的总和:

SELECT date, SUM(Power) AS total FROM feed GROUP BY date ORDER BY date

月/周/年等等,您只需更改GROUP BY - 子句

答案 1 :(得分:0)

你可以通过以下方式获得每日总数:

select mydate, sum(powerdrain)
from mytable
/* where date > now - 7 days */
group by date
order by date;

如果需要,插入where子句以进一步限制数据(我不确定那个数据的语法,你需要检查)。

答案的关键是group by子句,它将数据聚合成组,令人惊讶的是: - )