计算PHP中每周的事件数

时间:2012-04-21 13:50:07

标签: php mysql date count strtotime

我有一个包含成员注册的表格,我希望能够开始对数据进行一些图表和分析,并查找注册趋势等,所以我希望能够绘制一个线图,向我展示如何在过去的52周里,每周都有很多人报名参加。

我已经让图表工作正常,因为我已经广泛使用它们但是我很难理解如何使用PHP从MySQL中提取数据这让我很烦,因为我知道它应该不难 - 表格有一个名为datestamp的字段,格式为Ymd。我如何才能最好地创建一个循环,用于打印周和前一周52周的注册日期和计数?

1 个答案:

答案 0 :(得分:12)

假设您的timestamp列名为signup_date,您可以执行以下查询:

SELECT
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups 
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date);

这将为您提供2列的结果集,一年中的一周以及该周内有多少次注册。

修改1:

要获得每个结果的星期日期,您可以将以下内容添加到查询中:

SELECT
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups,
    SUBDATE(signup_date, INTERVAL WEEKDAY(signup_date) DAY) AS date_of_week
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date);