【发布时间】:2012-07-31 15:12:49
【问题描述】:
我正在尝试建立一个年\月档案。
它拒绝输出我想要的东西,所以我希望你们中的一个可以把我推向正确的方向。
我想按年份排序,并显示每年的月份(如果存在)并像这样输出:
2012
- June
- August
2011
- July
我的代码是这样的:
$query = "SELECT * FROM article WHERE full_name ='$safe_name' group by year, month";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result)) {
$year = $row['year'];
$month = $row['month'];
echo "<ul class='year'><li><a>{$year}</a>";
echo "<ul class='months'><li><a>{$month}</a></li></ul>
</li></ul>";
}
但它输出:
2012
- june
2012
- august
2011
- july
当我只按年份分组时,它会输出:
2012
- june
2011
- july
我有一个“date_posted”行,它是日期时间(yyyy-mm-dd 00:00:00)。 最重要的是,我每月有 1 行,每年有 1 行(我知道这很愚蠢,但我无法通过仅使用“date_posted”行来弄清楚如何做到这一点。
我已经阅读了有关此主题的一些帖子,但它对我没有用。 非常感谢任何帮助!
【问题讨论】:
-
既然你只想打印一年,我可能会建议你先将数据存储到一个数组中,然后在数组中循环输出
-
或者,只需将
$year和$month之前的值存储在变量中,仅在它们发生变化时打印出来;您可能还想在查询中使用SELECT DISTINCT year, month,这样您就可以获得唯一值以及仅检索您要查找的字段。
标签: php mysql datetime group-by archive