帝国论坛帝国网站管理系统交流区模板/标签/插件共享交流[分享]帝国cms年榜、月榜、周榜、日榜排序的实现方法 【本版专题贴子】  
主题:[分享]帝国cms年榜、月榜、周榜、日榜排序的实现方法 [加入收藏夹]   

nydalu
用户头衔:进士

精华贴   :0
发贴数   :870
经验值   :4194
注册时间:2008-07-08
信息 搜索 好友 发送悄悄话 精益求精-帝国网站管理系统7.5正式版开源发布】   [第 1 楼]
[分享]帝国cms年榜、月榜、周榜、日榜排序的实现方法


要实现排行榜,基本逻辑是现在的时间减去以前的时间,然后其中的时间段就是我们所需要的排序时间,代码如下:

年榜的实现方法:
[e:loop={"select * from phome_ecms_news where  newstime>UNIX_TIMESTAMP()-86400*365 order by onclick desc limit 10",10,24,0}]
<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a><br>
[/e:loop]

月榜的实现方法:
[e:loop={"select * from phome_ecms_news where  newstime>UNIX_TIMESTAMP()-86400*30 order by onclick desc limit 10",10,24,0}]
<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a><br>
[/e:loop]

周榜的实现方法:
[e:loop={"select * from phome_ecms_news where  newstime>UNIX_TIMESTAMP()-86400*7 order by onclick desc limit 10",10,24,0}]
<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a><br>
[/e:loop]

日榜的实现方法:
[e:loop={"select * from phome_ecms_news where  newstime>UNIX_TIMESTAMP()-86400*1 order by onclick desc limit 10",10,24,0}]
<a href="<?=$bqsr[titleurl]?>" target="_blank"><?=$bqr[title]?></a><br>
[/e:loop]

代码解析:
以年榜为例来解析,其中的关键代码是“newstime>UNIX_TIMESTAMP()-86400*365 ”,这一句表示时间要大于当前时间减去一年前的时间,结果就表示过去一年的时间,有点绕口,大家只需记住UNIX_TIMESTAMP()-86400*365,这个365表示一年365天,那么,月这个数字改成30就可以了,周改成7,日改成1,然后可以按照点击进行排序,这样就实现了相应的榜单排名。



我爱帝国 感谢王猛
2024-12-09 08:50:30 已设置保密 顶部 回复 引用 报告 编辑 删除

worldcms
用户头衔:进士

精华贴   :0
发贴数   :937
经验值   :4192
注册时间:2017-05-12
信息 搜索 好友 发送悄悄话 免费开源-EBMA系统:更安全的MYSQL管理和备份系统】   [第 2 楼]

支持




2024-12-09 10:07:59 已设置保密 顶部 回复 引用 报告 编辑 删除

快速回复
内容

表情
使用EBB代码 使用smile代码 显示签名 自动分析url 自动分析img
     【进入高级模式】   (按 Ctrl+Enter 直接提交)
    顶部  加入收藏夹
关于帝国 | 广告服务 | 联系我们 | 法律声明 | 隐私条款 | 许可协议
Powered by: EBB Version 2.2.1