加入收藏 | 设为首页 | 会员中心 | 我要投稿 葫芦岛站长网 (https://www.0429zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

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>。

(编辑:葫芦岛站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!