如何制作一个归档页面

#1 牛脚殳生

大部分主流程序默认都带有归档页面,但是如何去做一个归档页面?
我需要的效果是
X年X月 (x)

  • X日:XXXXXXX (x)
  • X日:XXXXXXX (x)
X年X月 (x)

  • X日:XXXXXXX (x)
  • X日:XXXXXXX (x)
  • X日:XXXXXXX (x)
但是昨天搜遍了搜索引擎,得到了这样一个SQL语句
SELECT year(time) as year, month(time) as month, day(time) as day,count(1) as count,title,m_count,pid,cid
        FROM {$prefix}post
        GROUP BY year(time), month(time)
        ORDER BY year(time) DESC , month(time) DESC;
得到的效果却是这样的:
X年X月 (x)

  • X日:XXXXXXX (x)
X年X月 (x)

  • X日:XXXXXXX (x)
怎么样才能做到列出所有标题?

2013-04-06 06:18:20

#2 jake

看楼上SQL,主要是实现功能不管性能的。所以建议:

1. 全部查出来(或者稍微分页),select * from post order by time desc limit 20
2. 从最近的年月开始循环,匹配显示。

2013-04-06 08:33:17

#3 牛脚殳生

jake 发表于 2013-4-6 08:33
看楼上SQL,主要是实现功能不管性能的。所以建议:

1. 全部查出来(或者稍微分页),select * from post o ...
谢谢
1我是看明白了
但是2应该怎么去做?我是个新手,今年2月才开始接触PHP和Sql。

2013-04-06 09:16:52

#4 jake

牛脚殳生 发表于 2013-4-6 09:16
谢谢
1我是看明白了
但是2应该怎么去做?我是个新手,今年2月才开始接触PHP和Sql。
$records = spClass('POST')->findAll(null, "time DESC", "year(time) as year, *");
$newyear = 0;
foreach($records as $v){
        if($newyear != $v['year']){
                $newyear = $v['year'];
                echo $newyear."的归档";
        }
        echo $v["title"]."";
}
看不懂就稍微多看点PHP基础吧,新手不是借口。

2013-04-06 09:33:21

#5 牛脚殳生

jake 发表于 2013-4-6 09:33
看不懂就稍微多看点PHP基础吧,新手不是借口。
谢谢,问题解决了

2013-04-06 09:49:22