首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP/MySQL -创建每周报告

PHP/MySQL -创建每周报告
EN

Stack Overflow用户
提问于 2014-01-03 07:13:22
回答 4查看 4.6K关注 0票数 0

我有一个带有行时间戳和行值的mysql数据库。我想按7天来计算所有的值。

如何才能使PHP以db中的第一个日期开始并创建每周摘要?

我的时间格式是dd-mm-yy。

我的问题是:

代码语言:javascript
复制
$kcl = mysqli_query($db,"SELECT * FROM tick GROUP BY date ORDER BY id DESC");

我想这可以用for循环和计数器来完成,我必须做一个查询来找出第一个记录的日期,收集7天,然后做下7天。所以我想在这个布局中显示结果:

代码语言:javascript
复制
WEEK 30.12.13-05.01.2014    |    RESULT OF CALC
WEEK 06.01.2014-12.01.204   |    RESULT OF CALC
etc.

我希望有人能给我一个提示。

EN

回答 4

Stack Overflow用户

发布于 2014-01-03 07:20:36

尝试如下所示:

代码语言:javascript
复制
"SELECT *, AVG(value) AS value_avg FROM `tick` GROUP BY WEEK(date) ORDER BY id DESC"

Date time函数:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

分组依据:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

票数 3
EN

Stack Overflow用户

发布于 2014-01-03 07:18:26

如果这是一个正在进行的过程,那么您应该研究一下cron。这是一个自动化的过程,它将按照设定的计划执行脚本,您可以在需要的时候对其进行更改、添加等。如果你有主机,它应该在你的控制面板选项中。

http://en.wikipedia.org/wiki/Cron

我不确定这是否是您想要的,但这可能是在PHP中关于时间函数的正确方向上的一步。

代码语言:javascript
复制
<?php
    function dates_range($date1, $date2) {
       if ($date1<$date2) {
           $dates_range[]=$date1; 
           $date1=strtotime($date1); 
           $date2=strtotime($date2); 
           while ($date1!=$date2){
               $date1=mktime(0, 0, 0, date("m", $date1), date("d", $date1)+1, date("Y", $date1)); 
               $dates_range[]=date('Y-m-d', $date1); 
           }
       }
       return $dates_range;
    }

    $date_1 = strftime('%Y-%m-%d', time());
    $date_2 = 'Search 7 days on either side';
    //then compare your MySQL data to the output or through a foreach or whichever
    echo '<pre>';
    print_r(dates_range($date_1, $date_2));
    echo '</pre>';
?>
票数 0
EN

Stack Overflow用户

发布于 2014-01-03 07:29:48

我有一些痛苦的想法,但可能行不通,但我会尝试:

代码语言:javascript
复制
$kcl = mysqli_query($db,"SELECT * FROM  where created_dt BETWEEN curdate() - INTERVAL $var     DAY AND SYSDATE() tick GROUP BY date ORDER BY id DESC");

我会在某个地方有一个视图来编辑$var为7,14,21等。

天啊..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20893694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档