您现在的位置是:网站首页 > 脚本编程>

thinkphp 实现文章归档

2013-11-185285人围观
简介 闲着无聊弄了个文章归档,实在是没有什么文章写了只有将这个小小的代码贴出来了。 1、按栏目归档实现代码:“select count(a.channelid) as num,c.name,c.id from think_article a,think_channel c where a.channelid=c.id group by c.name order by c.id desc”效果图

闲着无聊弄了个文章归档,实在是没有什么文章写了只有将这个小小的代码贴出来了。

1、按栏目归档

实现代码:

“select count(a.channelid) as num,c.name,c.id from think_article a,think_channel c where a.channelid=c.id group by c.name order by c.id desc”

效果图:

2、按时间归档

实现代码:

“select count(id) as num,FROM_UNIXTIME(time,'%Y年%m月') as t,FROM_UNIXTIME(time,'%Y/%m') as t1  from think_article group by t order by t desc”

html代码:

<div class="widget" id="widget_statistics">

<h2>文章归档</h2>

<div style="height:110px;overflow:auto;">

<ul>

<volist id="vo" name="gui">

<li title="{$vo.t}({$vo.num}篇)"><a href="{$time|host}__APP__/data/index/{$vo.t1}">{$vo.t}({$vo.num}篇)</a></li>

</volist>

</ul>

</div>

</div>


效果图:

点击相应的年份查询相应的文章代码:

$User = A("Index"); 

$User->head();

$User->right();

$User->footer();

$y=$_GET['_URL_']['2'];//年

$m=$_GET['_URL_']['3']; //月

if (in_array($m, array(1, 3, 5, 7, 8, 01, 03, 05, 07, 08, 10, 12))) 

{  

$e = 31;  //天数

}elseif ($m == 02)

{  

if ($y % 400 == 0 || ($y % 4 == 0 && $y % 100 !== 0)) 

{

$e = 29;  //天数

} else {  

$e = 28;  //天数

}  

} else {  

$e = 30;  //天数

}

$d=01;

$a='00:00:00';

$b='23:59:59';

$ks=$y.'-'.$m.'-'.$d.' '.$a;//开始时间

$js=$y.'-'.$m.'-'.$e.' '.$b;//结束时间

$start=strtotime($ks);

$end=strtotime($js);

$da=M("Article");

$rs=$da->table('think_channel c,think_article a')->where("c.id=a.channelid and a.state=0 and a.time>= $start and a.time <= $end")->field('c.name,a.id,a.title,a.write,a.time,a.channelid,a.info,a.tags,a.write,a.click,a.fileurl')->order('id desc')->select();

$cont=count($rs);

$this->assign('cont',$cont);

$this->assign('rs',$rs);

$kw=$y."年".$m."月的文章";

$this->assign('kw',$kw);

$this->display();


由于使用的程序不同需要做相应的修改即可!!

打赏本站,你说多少就多少

本文地址:https://www.qi522.com/view/43.html

来     源:千奇博客

精彩评论

微信关注

Copyright © 2013-2019 千奇博客 保留所有权利 辽ICP备13008238号