使用 PHP 计算年月存档中的内容 [英] Count content in years month archive using PHP

查看:29
本文介绍了使用 PHP 计算年月存档中的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要像这样打印每年/每月的新闻数量:

I need to print the count of news per year/month like this:

2013

  • 10 月 (20) 日
  • 11 月 (45)
  • 九月 (80)

2014

  • 一月 (5)

我有这个:

 $sql = "SELECT YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTHNAME(FROM_UNIXTIME(timestamp)) AS MONTH, 
                COUNT(*) AS TOTAL 
         FROM NEWS GROUP BY YEAR, MONTH";
 $newsdata = DataAccess::ArrayFetch($sql);

 foreach($newsdata AS $news){            
   //what???   
 }

现在,如何打印年份和月份?

Now, how do print years and months?

推荐答案

您在查询中对它们进行排序,然后按该顺序打印它们.您需要检测年份更改,以打印年份标题:

You sort them in the query, then you print them in that order. You'll need to detect year changes, to print the year header:

$sql = "SELECT YEAR(FROM_UNIXTIME(timestamp)) AS YEAR, 
                MONTHNAME(FROM_UNIXTIME(timestamp)) AS MONTH, 
                COUNT(*) AS TOTAL 
         FROM NEWS GROUP BY YEAR, MONTH ORDER BY YEAR DESC, MONTH ";
$newsdata = DataAccess::ArrayFetch($sql);

$currentYear = null;

foreach($newsdata AS $news){            
  if ($currentYear != $news['YEAR']){
    echo '<h2>'.$news['YEAR'].'<h2>';
    $currentYear = $news['YEAR'];
  } 
  echo '<dd>'.$news['MONTH'].'<dd><dt>'.$news['TOTAL'].'</dt>';
}

这篇关于使用 PHP 计算年月存档中的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆