DEDECMS下载排行调用标签日周月排行+指定栏目SQL调取方面
发布时间:2022-05-20 14:04:12 所属栏目:经验 来源:互联网
导读:很多用DEDE的朋友一直纠结一个问题:下载排行调用。由于系统没有自带下载排行调用标签,所以只能用SQL标签来实现,但是很多人又不会,我就是其中之一。用了半年,我才把下载排行整个弄通,不容易
很多用DEDE的朋友一直纠结一个问题:下载排行调用。由于系统没有自带下载排行调用标签,所以只能用SQL标签来实现,但是很多人又不会,我就是其中之一。用了半年,我才把下载排行整个弄通,不容易啊。完美标签,下面会给出详细说明,适用于V5.5版本,其他版本未测试。 先来看一段代码: {dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON A.id = D.id order by downloads DESC limit 0,10; '} <li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] ">[field:title/]</a>下载次数[field:downloads/]</li> {/dede:sql} 这个就是SQL调用下载排行的,已经实现了静态地址调用。limit 0,10; 的意思是调用10调,想调用多少条只要修改“10”为你想要的数字,如过你想实现调用特定版块的下载排行,只需要在limit 0,10; 的后面加上"where typeid = xx " XX就是栏目ID。比如我想调用栏目10的下载排行,代码就是这样: {dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON A.id = D.id WHERE typeid = 10 order by downloads DESC limit 0,10;'} <li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] ">[field:title/]</a>下载次数[field:downloads/]</li> {/dede:sql} 这里有个小技巧:typeid =后面的值可以用当前栏目ID的标签,这样可以在每个栏目列表页实现当前栏目的下载排行调用,具体的望读者自己探究。当然也可以用typeid >或者<来限定栏目范围。 特定栏目调用已经解决,那么就剩下分时段调用了,可分为日,周,月,年,甚至自定义天数或者小时,代码如下: {dede:sql sql='Select A.id,A.title,D.id,D.downloads from dede_archives as A Left Join dede_downloads as D ON A.id = D.id WHERE typeid = 10 and pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7 day) order by downloads DESC limit 0,10;'} <li><a href="[field:id runphp='yes'] $id=@me;@me='';$url=GetOneArchive($id);@me=$url['arcurl'];[/field:id] ">[field:title/]</a>下载次数[field:downloads/]</li> {/dede:sql} 注意,我这是在上一个特定栏目的前提下再加一个时间条件语句,所以,我用了 and ,后面蓝色字体部分为所需要的内容,如果不想特定栏目,就把有色字体部分代码和紧跟着的“AND”去掉就行。pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 7 day) 的意思是取7天内的数据,我们只需要修改数字"7"就可以实现我们的目标,比如10天就是pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 10 day) ,如果想调用一个月的数据,那就是pubdate > UNIX_TIMESTAMP( CURDATE( ) - INTERVAL 1 month) 一年的话只要把"day"改成"year"即可。 标签到这里基本上已经完美了。希望大家自己多多实验,多探究,多查相关资料。 如果有不懂请留言。 附送另外一个小小的标签,关于调用今日更新情况的调用: <dt class='light'><strong>小小说阅读</strong><div align=right><font size=3>【{dede:sql sql="SELECT count( ID ) AS c FROM dede_archives WHERE pubdate > UNIX_TIMESTAMP( CURDATE( ) ) and typeid = 特定栏目ID"}今 日更新<font color=red>[field:c /]</font>篇文章{/dede:sql} 】</font></div></dt>。 (编辑:葫芦岛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐