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

Php 博客系统是如何做到这一点的?,php,blogs,Php,Blogs,我有一个社交网络,所以一个博客只是一个用户的网站小部件,所以每个用户都可以有一个博客,我想让这个博客尽可能好。当您转到用户博客页面时,它会显示当月的所有博客 我的问题是,我怎样才能在这样的侧面显示一个专栏 2009年7月 2009年6月 2009年5月 2009年4月 2009年3月 2009年2月 问题是,它应该只列出从用户加入网站到现在的几个月,所以从现在起2年前加入的用户将有24个这样的链接,而仅仅1个月或更高的用户只会看到1个 系统使用php/mysql这取决于数据库的结构。一般来说,一

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

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

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


系统使用php/mysql

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

这取决于数据库的结构。一般来说,一篇博客文章有一个与之相关的日期。您通常可以查询数据库,以获得每个用户的唯一月份列表。您使用的是像Wordpress这样的OSS系统还是定制的?你能对你的模式给出一些见解吗?

假设你:

  • 只想考虑几个月后,当有一个博客帖子从用户
  • 你的数据库是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;
+--------+-----+
| month  | num |
+--------+-----+
| 2008-6 |   1 |
| 2008-5 |   1 |
| 2008-4 |   3 |
| 2008-3 |   1 |
+--------+-----+
它将:

  • 列出用户“1”发帖的年份/月份(当然,这必须是动态的)
  • 每个月,给出有多少个职位
这意味着你会得到这样的结果:

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;
+--------+-----+
| month  | num |
+--------+-----+
| 2008-6 |   1 |
| 2008-5 |   1 |
| 2008-4 |   3 |
| 2008-3 |   1 |
+--------+-----+
注意事项:

  • 按年/月分组
  • 按日期说明订购
作为补充说明,这将给出一月到九月的月份数字:由您在MySQL的帮助中找到正确的格式;-)

玩得开心

假设您:

  • 只想考虑几个月后,当有一个博客帖子从用户
  • 你的数据库是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;
+--------+-----+
| month  | num |
+--------+-----+
| 2008-6 |   1 |
| 2008-5 |   1 |
| 2008-4 |   3 |
| 2008-3 |   1 |
+--------+-----+
它将:

  • 列出用户“1”发帖的年份/月份(当然,这必须是动态的)
  • 每个月,给出有多少个职位
这意味着你会得到这样的结果:

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;
+--------+-----+
| month  | num |
+--------+-----+
| 2008-6 |   1 |
| 2008-5 |   1 |
| 2008-4 |   3 |
| 2008-3 |   1 |
+--------+-----+
注意事项:

  • 按年/月分组
  • 按日期说明订购
作为补充说明,这将给出一月到九月的月份数字:由您在MySQL的帮助中找到正确的格式;-)


玩得开心

我不使用任何预制软件,这只是一个博客mysql表,有一个日期发布栏和一个用户ID发布栏,所以我目前只是查询该用户的所有博客,但我想在右侧显示一个栏,其中包含按月查看的链接。我只是想,最简单的方法可能是通过一些数学来确定他们从一开始已经在那里呆了多少个月会话变量中的注册日期我不使用任何预制软件,这只是一个博客mysql表,有一个日期发布栏和一个用户ID发布栏,所以我目前只是查询该用户的所有博客,但我想在右侧显示一个栏,其中包含按月查看的链接。我只是想,最简单的方法可能是通过一些数学来确定他们从一开始已经在那里呆了多少个月注册日期在会话变量中感谢这可能是最好的方法,但对于性能而言,每个查询都很重要,我认为这将是一个额外的查询,我存储用户注册日期,我可以做一些数学计算来确定他们成为会员的月份吗,即使一个月有0篇帖子,我也会显示它,就像我获取用户注册日期和今天日期,并在这两者之间重新运行一个月数组。如果您不关心显示没有帖子的月份,您的解决方案可能是最好的,是:-)(但是,作为最终用户,我认为这是不寻常的——特别是如果月份是指向显示该月份帖子的页面的链接,这意味着没有帖子的页面);另一种解决方案是,不要发出太多请求,对包含这些链接的“块”使用某种缓存机制(显然,这意味着每个用户都有一个缓存,当一篇文章被创建/删除/发布/未发布时,它必须被删除/…)是的,谢谢你的提示,为这样一个小功能做了这么多工作,你是受欢迎的:-)(是的,小事情总是那么麻烦^^)谢谢,这可能是最好的方式,但对于性能而言,每个查询都很重要,我想这将是一个额外的查询,我存储用户注册日期,我可以做一些数学计算来确定他们成为会员的月份吗,即使一个月有0个帖子,我也会显示类似于我获取用户注册日期和今天日期,然后重新运行一个mo数组n介于这两者之间。如果你不在乎显示没有帖子的月份,你的解决方案可能是最好的,是的:-)(但是,作为最终用户,我认为这是不寻常的——特别是如果月份是指向显示当月帖子的页面的链接,这意味着没有帖子的页面);另一个解决方案是,为了不发出太多的请求,可以对包含这些链接的“块”使用某种缓存机制(显然,这意味着每个用户将有一个缓存,并且在创建/删除/发布/未发布帖子时必须将其删除)。是的,感谢提示,这么多的工作为这么一个小功能你是受欢迎的:-)(是的,总是这么多的麻烦为小事^^)