0

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

我的问题,我怎样才能像这样在侧面显示一列 2009 年 7 月 2009 年 6 月 2009 年 5 月 2009 年 4 月 2009 年 3 月 2009 年 2 月 2009 年

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

系统使用php/mysql

4

2 回答 2

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 |
+--------+-----+

注意事项:

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

附带说明一下,这将为 1 月至 9 月的月份提供 1 位数:由您在 MySQL 的帮助中找到正确的格式;-)

玩得开心 !

于 2009-07-27T17:30:02.863 回答
1

这取决于您的数据库的结构。一般来说,一篇博文都有一个与之相关的日期。您通常可以查询数据库以获取每个用户的唯一月份列表。您使用的是像 Wordpress 这样的 OSS 系统,还是自定义的?您能对您的架构提供任何见解吗?

于 2009-07-27T17:18:43.760 回答