计算PHP中每周的事件数

bht*_*oan 8 php mysql date count strtotime

我有一个包含成员注册的表格,我希望能够开始对数据进行一些图表和分析,并查找注册趋势等,所以我希望能够绘制一个线图,显示有多少人签名过去52周每周都会上升.

我已经将图表工作正常,因为我已经广泛使用它们但我正在努力解决如何使用PHP从MySQL中提取数据这让我感到烦恼,因为我知道它应该不难 - 表中有一个字段叫做格式为Ymd的日期戳.我如何才能最好地创建一个循环,用于打印周和前一周52周的注册日期和计数?

Wil*_*ren 12

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

SELECT
    WEEKOFYEAR(signup_date) AS weekno, 
    COUNT(1) AS signups 
FROM your_table 
GROUP BY WEEKOFYEAR(signup_date);
Run Code Online (Sandbox Code Playgroud)

这将为您提供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);
Run Code Online (Sandbox Code Playgroud)