每天计算总帖子数量

时间:2014-02-09 09:05:37

标签: php

我有一个功能可以计算整个网站的总帖子数

function posts_count(){ 
$data=mysql_fetch_assoc(mysql_query("SELECT count(*) as total from posts"));
return $data['total'];

}

如何计算每天发布的帖子数量? 例如,今天的新帖总数:55

我在想,当帖子发布时我在数据库中有一个日期行,我可以做类似的事情

function posts_count_today(){   
    $data=mysql_fetch_assoc(mysql_query("SELECT count(*) as total from posts WHERE date = '$date_today'"));
    return $data['total'];
}

其中$ date_today显然是当天,但我确信有更好的功能,就像now()或其他东西

5 个答案:

答案 0 :(得分:2)

是的,使用NOW是一个好主意。如果您的日期列还包含时间组件,请考虑使用DATE函数:

SELECT count(*) as total from posts WHERE DATE(date) = DATE(NOW())

这将获取今天发布的所有帖子,无论时间如何。

答案 1 :(得分:0)

您的表中是否有一列记录了它们的创建日期?这是一个表格的例子:

create table foo( foo_id int NOT NULL AUTO_INCREMENT, recorded TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );

您的计划永远不应填写recorded列。将其留空将意味着记录将具有输入记录的时间戳。

然后,您可以根据recorded列选择所有行。

function posts_count_today(){   
    $data=mysql_fetch_assoc(mysql_query("
      SELECT count(*) as total 
      FROM posts 
      WHERE recorded > '$date_today'
    ")); //<== $date_today will have to be a format mysql understands. Can't remember off the top of my head but should be google-able.

    return $data['total'];
}

答案 2 :(得分:0)

要获取数据库帖子记录中每个日期的帖子的计数和日期,请尝试:

SELECT count(DATE(`date`)) as total,
DATE(`date`) as distinctDate
FROM posts
WHERE DATE(date) <= DATE(NOW())
GROUP BY DATE(`date`)

答案 3 :(得分:0)

试试这个sql

select count(*) as count, date from posts group by date

PHP代码

$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)){
  $data[$row['date']] = $row['count'];
}

答案 4 :(得分:0)

如果您在每天看到计数帖子,则可以使用此查询:

从帖子中选择计数(*),日期 按日期分组

但此查询返回多行。