2009-07-27 40 views
0

我有一个社交网络,所以一个博客只有你可以说一个用户的网站小部件,所以每个用户可以有一个博客,我想尽可能使这个博客好。当你转到用户博客页面时,它会显示当月的所有博客。博客系统如何做到这一点?

我的问题,我该怎么让在这样 七月侧2009年 2009年6月 五月柱2009年 2009年4月 2009年3月2009年 月

美中不足的是,因为它应该只列出个月用户加入该网站直到目前为止,所以从现在开始加入的用户从现在开始将有24个这样的链接,并且用户仅仅1个月或更新只会看到1个?

系统使用php/mysql

回答

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

事情:

  • groupin摹按年/月
  • 排序按日期倒序

作为一个侧面说明,这将给每月1位数字一月至九月:你来找到在MySQL的帮助;-)正确的格式

玩得开心!

+0

中的注册日期之后在那里有多少月。感谢这可能是最好的方式这样做,但对于性能每个查询很重要,我认为这将是一个额外的查询,我存储用户注册日期,我可以做一些数学来确定他们已经成为会员的月份,即使一个月有0我会显示它 – JasonDavis 2009-07-27 18:02:03

1

这取决于您的数据库结构。通常,博客文章有一个与之相关的日期。您通常可以查询您的数据库以获取每个用户的唯一月份列表。你使用的是像Wordpress这样的OSS系统,还是自定义的东西?你能对你的模式有所了解吗?

+0

我不使用任何预制软件,它只是一个博客MySQL表,并且有一个日期发布列以及一个userID张贴,所以我目前只是查询来自该用户的所有博客,但我想显示一列右边带有查看按月查看的链接我只是关于它而言,最简单的方法可能是一些数学来确定它们在会话变量 – JasonDavis 2009-07-27 17:22:55