Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO MySQL每天装入数组的负载计数_Php_Mysql_Sql_Arrays_Pdo - Fatal编程技术网

Php PDO MySQL每天装入数组的负载计数

Php PDO MySQL每天装入数组的负载计数,php,mysql,sql,arrays,pdo,Php,Mysql,Sql,Arrays,Pdo,我有一个投票系统,人们通过我的网站投票。我记录每一张选票,每一张选票都是表格中的一行。即: | id | ip | date | ------------------------------------------- | 1 | ::1 | 2014-05-22 20:31:16.000000 | 因为我保存了日期,所以可以将其基于本月的天数 我有一个折线图,它将显示得票最多的日子(从最低到最高排序) 如何加载日数(例如1,2,3,4)和

我有一个投票系统,人们通过我的网站投票。我记录每一张选票,每一张选票都是表格中的一行。即:

| id  |  ip  | date                       |
-------------------------------------------
|  1  | ::1  | 2014-05-22 20:31:16.000000 |
因为我保存了日期,所以可以将其基于本月的天数

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

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

[
  1 => 104,
  2 => 234,
  3 => 636,
  4 => 105
];
因此,如果投票是在同一天进行的,则会将其添加到当天的计票中。

其中,键是日数,值是当天的票数


我正在使用PDO,如何才能像那样加载它?

下面的查询将返回所需的数据

SELECT DAY(`date`), COUNT(*)
FROM `your table`
WHERE YEAR(`date`) = YEAR(NOW()) AND MONTH(`date`) = MONTH(NOW())
GROUP BY DAY(`date`)
$pdo->query(…)
包装它,并对结果调用
fetchAll()


您可能希望稍微查看一下查询的
WHERE
约束,使用
date
列而不调用函数(因此查询可以使用索引),例如使用
date-BETWEEN。。。和…
。这是留给您的一个练习。

您可以做一些事情,链接如下:

$year = 2014;
$month = 01;
$array = array();
for($day = 1; $day <= 31; $day++)
{
    $date = "$year.$month.$day";
    $array[$day] = execute sql string "SELECT COUNT(*) FROM table WHERE date > $date 00:00:00 AND date < $date 23:59:59"
}
$year=2014年;
$month=01;
$array=array();

对于($day=1;$day)sql或php,您有什么问题?我希望您知道IP不能识别唯一的人。许多人可以共享一个IP地址,一个人可以被视为来自多个IP地址addresses@jeroen构建查询以按天加载计数。使用
fetchAll(PDO::FETCH_KEY_PAIR)
以key=>value格式获取结果。@Jay Blanchard我无法理解您的回滚!
PDO::FETCH_key_PAIR
是此答案的一部分…我不会在只需要一个参数的情况下复制答案。如果我有权编辑答案,我会编辑答案!!!请自便@Thiagofrana,但当更改影响答案时当然,你可以期待有人可能不会批准它们或将它们回滚。正如我所说的,不需要复制,只需对提供答案的海报发表评论即可。在
fetchAll()
中可能有几种变体,因此你放在那里的只是一个建议。部分问题是:“我如何加载日数?”(例如1,2,3,4)和投票量,因此它将存储在一个数组中,其中键是天数,值是投票量“PDO的方法是在
fetchAll()中使用常量
PDO::FETCH_key_PAIR
,即使是
fetchAll()的所有变量
,遇到的问题是。每天1个查询,请不要。我知道,但是有人否决了第一个解决方案,所以我写了一些东西。这只是个坏主意,我建议你删除它