我有一个功能可以计算整个网站的总帖子数
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()或其他东西
答案 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)
如果您在每天看到计数帖子,则可以使用此查询:
从帖子中选择计数(*),日期 按日期分组
但此查询返回多行。