我有一个包含成员注册的表格,我希望能够开始对数据进行一些图表和分析,并查找注册趋势等,所以我希望能够绘制一个线图,向我展示如何在过去的52周里,每周都有很多人报名参加。
我已经让图表工作正常,因为我已经广泛使用它们但是我很难理解如何使用PHP从MySQL中提取数据这让我很烦,因为我知道它应该不难 - 表格有一个名为datestamp的字段,格式为Ymd。我如何才能最好地创建一个循环,用于打印周和前一周52周的注册日期和计数?
答案 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);