博客系统如何做到这一点?

时间:2009-07-27 17:15:58

标签: php blogs

我有一个社交网络,所以博客只有你可以为用户说出一个网站的小部件,所以每个用户都可以有一个博客,我想让这个博客尽可能好。当您转到用户博客页面时,它会显示当月的所有博客。

我的问题是,如何在这边显示一栏 2009年7月 2009年6月 2009年5月 2009年4月 2009年3月 2009年2月

问题是它应该只列出自用户加入网站直到当前的几个月,所以从现在开始加入2年前的用户将拥有24个这样的链接,而用户只需1个月或更新只会看到1?

系统使用php / mysql

2 个答案:

答案 0 :(得分:2)

假设你:

  • 只想考虑用户发布博客文章的月份
  • 您的数据库是MySQL

您可以尝试这样的事情:

select concat(YEAR(date), '-', MONTH(date)) as month, count(*) as num 
from ab_post 
where user_id = 1 
group by YEAR(date), MONTH(date) 
order by YEAR(date) desc, MONTH(date) desc;

它会:

  • 列出用户“1”发布帖子的年/月(当然这必须是动态的)
  • 每个月,提供多少帖子

这意味着你会得到这样的东西:

+--------+-----+
| month  | num |
+--------+-----+
| 2008-6 |   1 |
| 2008-5 |   1 |
| 2008-4 |   3 |
| 2008-3 |   1 |
+--------+-----+

要注意:

  • 按年/月分组
  • 按日期排序desc

作为旁注,这将在1月到9月之间给出1个数字的数字:由您在MySQL的帮助中找到正确的格式; - )

玩得开心!

答案 1 :(得分:1)

这取决于数据库的结构。通常,博客帖子具有与之关联的日期。您通常可以查询数据库以获取每个用户的唯一月份列表。您使用的是像Wordpress这样的OSS系统吗?您能否对您的架构有任何见解?