Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 正在获取特定日期范围内的文章数_Php_Mysql - Fatal编程技术网

Php 正在获取特定日期范围内的文章数

Php 正在获取特定日期范围内的文章数,php,mysql,Php,Mysql,我想有我的文章计数每天在特定的日期期间,所以我可以得到40个数组计数40天 CREATE TABLE IF NOT EXISTS `articles` ( `id` int(11) NOT NULL AUTO_INCREMENT, `caption` varchar(255) NOT NULL, `author_id` int(11) NOT NULL, `date_added` datetime NOT NULL, `body` text NOT NULL, `desc

我想有我的文章计数每天在特定的日期期间,所以我可以得到40个数组计数40天

CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `caption` varchar(255) NOT NULL,
  `author_id` int(11) NOT NULL,
  `date_added` datetime NOT NULL,
  `body` text NOT NULL,
  `description` varchar(500) NOT NULL,
  `location` varchar(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `author_id` (`author_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
我不是MySQL的专家,所以我最远的目标是:

$sql  = 'SELECT date_added FROM articles ';
    $sql .= 'WHERE date_added > ' . '"' . $mysql_datetime_start . '" AND ';
    $sql .= 'date_added < ' . '"' . $mysql_datetime_end . '" ';
    $sql .= 'GROUP BY date_added ';
$sql='SELECT date_added FROM articles';
$sql.='WHERE date\u added>'“.$mysql_datetime_start.”和“;
$sql.='添加日期<'“.$mysql_datetime_end.”;
$sql.='GROUP BY date_ADTED';
然后我想进入循环,但必须有一些更好的解决方案与单一查询

这是我网站上的日历,因此一次查询可以节省大量处理器时间


希望有人能帮忙。谢谢。

您可以使用MySQL的
DATE
函数来分离
DATETIME
列的日期部分,然后按它分组

SELECT DATE(date_added), COUNT(*) FROM articles
WHERE date_added BETWEEN $mysql_datetime_start AND  $mysql_datetime_end 
GROUP BY DATE(date_added);

我想这就是你想要的:

$sql = 
"SELECT DATE( date_added ), count(*) FROM articles 
  WHERE date_added > '" . $mysql_datetime_start . "'
  AND date_added < '" . $mysql_datetime_end . "' 
  GROUP BY DATE( date_added )"
$sql=
从文章中选择日期(添加日期),计数(*)
其中date_添加了“>”$mysql\u datetime\u启动。"'
并加上日期<'”$mysql\u datetime\u end。"' 
按日期分组(添加日期)”
在使用日期时间开始和结束之前,请确保对其进行消毒