PDO将每天的MySQL加载计数转换为数组

Art*_*545 0 php mysql sql arrays pdo

我有一个投票投票系统,人们使用我的网站投票.我记录了每一票,每张票都是表中的一行.即:

| id  |  ip  | date                       |
-------------------------------------------
|  1  | ::1  | 2014-05-22 20:31:16.000000 |
Run Code Online (Sandbox Code Playgroud)

由于我保存了日期,因此可以根据本月的日期来确定日期.

我有一个折线图,它会显示投票数最多的日子(从最低到最高排序).

如何加载日期编号(例如1,2,3,4)和投票数量,以便将其存储在如下数组中:

[
  1 => 104,
  2 => 234,
  3 => 636,
  4 => 105
];
Run Code Online (Sandbox Code Playgroud)

因此,如果在同一天进行投票,则会将其添加到当天的计数中.

密钥是日期编号,值是当天的投票数.

我正在使用PDO,我怎么能像那样加载它?

Gho*_*ler 5

以下查询返回所需的数据

SELECT DAY(`date`), COUNT(*)
FROM `your table`
WHERE YEAR(`date`) = YEAR(NOW()) AND MONTH(`date`) = MONTH(NOW())
GROUP BY DAY(`date`)
Run Code Online (Sandbox Code Playgroud)

用它包装$pdo->query(...)并调用fetchAll()结果.

您可能想稍微调整WHERE查询的约束,以使用date没有函数调用的列(因此查询可以使用索引),例如with date BETWEEN ... AND ....这留给你练习.