档案生成器PHP

问题描述:

在我开始id之前,喜欢说ive将此问题作为更多讨论而不是问题问题发布。档案生成器PHP

在我的数据库我有新闻发布可以说3列(标题,标题,日期)。其他ID和标题是自我解释日期存储在mktime()值中,换句话说,自1970年1月1日以来经过的秒数。

现在我想要做的是构建存档链接,

  • 2009年7月
  • 2009年6月2009年
  • 二月2009年
  • 2008年12月

请注意没有帖子的月份不显示。

现在,作为一个最初的想法我想

  1. 开始与当月
  2. 的最后一天,并获得当月
  3. 第一天的价值做一个MySQL COUNT对于日期> = First_Day_Seconds和日期的帖子,Query/mysql_num_rows < = Last_Day_Seconds
  4. 显示或放置数组中的值
  5. 做anoth呃查询以检查是否有更多的值被发现WHERE日期< First_Day_Seconds(突破如果没有找到行)

现在,以上只是我的头顶的东西。但如果你有任何想法来加快这个过程,请分享。

会说提前,日期必须在mktime格式

+0

两个人都很喜欢这个。 :D – 2009-07-27 10:05:10

我会使用一个数据库,“本地”时间格式建议,但它与UNIX时间戳为好。

你可以简单地做:

SELECT DISTINCT FROM_UNIXTIME(date, '%M %Y') FROM posts; 

任选与WHERE条款限制日期过去或将来的日期。可能是一个ORDER条款投入良好的措施。这应该是几乎所有需要的,让数据库尽可能地做更多的工作。

如果您需要更多的格式选项,选择"%Y-%m"代替日期和PHP格式化:

date($myCustomFormat, strtotime("$date-01")); 
+0

很好完成...我只是跑了那个查询和哇! – 2009-07-27 06:33:31

您可以使用此查询来获取年

"SELECT *,content_id,COUNT(content_id) AS itemCount FROM content_mast GROUP BY DATE_FORMAT(date_upload,'%Y') DESC"; 

现在使用可以使用此查询获取当年的月份

$tday = date("Y", $datetime); 
$s1="select * from content_mast where DATE_FORMAT(date_upload,'%Y')=$tday";