PHPCMS V9 按浏览次数排行调用文章

 

作者:匿名 来源:老者工作室 浏览:1841次 2011-6-22 14:59:05 字号:大
[摘要]PHPCMS V9(简称V9)采用PHP5+MYSQL做为技术基础进行开发。V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功能扩展,代码维护,优秀的二次开发能力,可满足所有网站的应用需求。

  在用PHPCMS做下载站时候,比较头疼的就是目前的V9版竟然没有下载次数统计,而只能使用浏览次数来忽悠浏览者,呵呵,管他了,反正一般来访者都不会太注意。现在只能忍着了,刚从DeDeCMS转过来,好歹人家都有下载次数统计的。毕竟没有十全十美的东西……

  做下载总得有个下载排行吧,按照一般的逻辑,进入某栏目,显示的是某栏目的下载排行,而在首页呢,应该显示的是全站所有软件条目的下载排行。

  虽说PHPCMS V9是新开发的,架构比较好,但是错误也不少,好多标签一同时使用后就出现异常了,头都大了,也懒得整理放到官方论坛给他们修正,自己先避开,能不用就不用。

  而我要说的就是,PHPCMS V9的标签竟然不支持重复调用多个栏目,例如我想显示某两个栏目的下载排行,V9就做不到了,而之前的2008版却是可以支持的。令人费解,只能认为是新架构,还没来得及完善了。

   更难理解的是,浏览次数的表里面,与相关文章或下载内容关联的是一个叫“hitsid”的字段,同时也是该表的主键。存储的字段内容如“c-2-5”一 类的,而不是普通的整型数字,不能简单的与文章表或者下载表里面的条目的“id”号直接关联就得到相关的浏览次数,这个另类的“x-y-z”的方式令不少 SQL语句的生手望而生畏,包括本人。

  不过还好,这个“x-y-z”的格式是有规律可循的,于是乎,我查看了相关的文档,想到了用字符 串的形式,因为我做的是下载站,“x-y-”这段字符串是固定的,就是“c-2-”,第一个“c”是什么不知道,第二个“2”应该是内容模型,“2”是下 载模型,“1”是文章模型,可以到模型管理里面查看id号。最后那个数字就是对应的文章表或下载表里的条目id了,所以,也不是没有方法的,我想到的就是 在SQL语句里,将固定的“c-2-”和字段id合在一起,得到的就是诸如“c-2-5”一类的字符串,然后在用条件比对即可。

  但是限于本人水平有限,这个字符串加了半天,没有能够成功。于是乎在网上漫无边际的搜寻着,无意发现了IT民工x宅男写的文章《Phpcms V9 替换顶级栏目页面为列表页及BUG修复》,从中找到了另一个方法,就是使用SQL语句的“substring”,我恍然大悟,这个方法也行得通的啊。先附上这位同学给出的方法:

频道总排行调用方法

<div class="box"><h5 class="title-2">频道总排行</h5>{pc:get sql="select a.id,a.title,a.url,a.catid,b.hitsid,b.views from v9_news a left join v9_hits b on a.id=substring(b.hitsid,5) where a.catid in ($arrchildid) order by b.views desc" num="10" cache="3600"}<ul class="content digg">{loop $data $r}<li> <a href="{$r[url]}" title="{$r[title]}" target="_blank">{str_cut($r[title],36,'...')}</a></li>{/loop}</ul>{/pc}
</div>


频道月排行调用方法

<div class="box"><h5 class="title-2">频道本月排行</h5>{pc:get sql="select a.id,a.title,a.url,a.catid,b.hitsid,b.views from v9_news a left join v9_hits b on a.id=substring(b.hitsid,5) where a.catid in ($arrchildid) order by b.monthviews desc" num="8" cache="3600"}<ul class="content rank">{loop $data $r}<li><span>{number_format($r[views])}</span><a href="{$r[url]}"{title_style($r[style])}class="title" title="{$r[title]}">{str_cut($r[title],56,'...')}</a></li>{/loop}</ul>{/pc}
</div>


  这个就是两个很好的例子。当然我只用到了前一个例子中的SQL语句中的substring方法。Substring是截取字符串的作用,具体Substring的解释详见《SQL语句Substring用法》。

  经过上述例子学习后改进,虽然我的方法跟上面的多表联查不一样,但同样得到了最后的调用全站所有文章排行的方法:

<div class="idxTopApps contents">
<ul class="indexIcns">
{pc:get sql="SELECT a.id,a.url,a.thumb,a.status,b.hitsid,b.views FROM v9_download a, v9_hits b WHERE a.status=99 and a.id=substring(b.hitsid,5) ORDER BY b.views DESC" num="6"}
{loop $data $r}
<li><a href="{$r['url']}"><img src="{$r['thumb']}" /></a></li>
{/loop}
{/pc}
</ul>
</div>


  可以看到 “substring(b.hitsid,5)”是截取hitsid字段,从左往右数第5个字符串,即“c-2-5”从左往右数,1个“c”,1个 “2”,2个“-”,第5个字符就是“5”,截取后只剩下了第2个“-”后的id,到达了最终提取id的目的。当然,其中我还加入了另一个条件 “status=99”,这个表示已经审核通过的文章,这个可有可无。

转载于:https://www.cnblogs.com/gzmg/p/3222976.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之WebView学习

WebView常用方法 WebSettings 在使用WebView前我们都要进行相关的配置&#xff0c;常见的操作如下&#xff1a; WebSettings settings mWebView.getSettings();settings.setJavaScriptEnabled(true); //支持javascriptsettings.setUseWideViewPort(true); //设置webv…

跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期

来源&#xff1a;网易智能昨日&#xff0c;特斯拉上海工厂尘埃落定。特斯拉与上海规划与国土资源管理局签订协议&#xff0c;以9.73亿人民币拿下上海临港约1297.32亩地建造汽车工厂。据悉&#xff0c;这是特斯拉在美国之外设立的首个超级工厂。根据特斯拉的规划&#xff0c;上海…

[SQL Server系] -- 存储过程

tet转载于:https://www.cnblogs.com/TangPro/p/3227466.html

2019科学突破奖揭晓 庄小威陈志坚许晨阳上榜

来源&#xff1a;科学网10月17日&#xff0c;科学突破奖&#xff08;Breakthrough Prize&#xff09;名单揭晓。总计2200万美元的奖金分别给了婴儿死亡主要遗传因素治疗、超分辨率成像、发现一种新型电子材料以及其他重大突破。华裔科学家庄小威、陈志坚、C. Frank Bennett 、A…

Android之IPC机制

Android IPC简介 任何一个操作系统都需要有相应的IPC机制&#xff0c;Linux上可以通过命名通道、共享内存、信号量等来进行进程间通信。Android系统不仅可以使用了Binder机制来实现IPC&#xff0c;还可以使用Socket实现任意两个终端之间的通信。 IPC基础概念介绍 (1)Seriali…

HTML5与原生APP之争胜负已出?

早在HTML5技术问世之时&#xff0c;有关网络应用与原生应用谁将成为移动终端霸主的问题&#xff0c;就曾引起过广泛的争论。时至今日&#xff0c;不仅关于二者孰强孰弱的争论已然平息&#xff0c;就连备受关注的移动互联网创业公司也大多是做原生APP的&#xff0c;未曾见过HTML…

5G 产业链:基站天线和小基站爆发潜力大

来源&#xff1a;国信证券5G宏基站数的翻倍增长及技术演进带来基站天线成倍增长空间。5G关键性能指标十倍的增长需要基站数翻倍增长以支撑。5G的三个关键的效率需求包括频谱利用效率、能耗效率和成本效率。具体来说&#xff0c;5G在频谱效率、能源效率和成本效率的提升需求在十…

操作系统之死锁

死锁的概念以及产生死锁的原因 一组进程中&#xff0c;每个进程都无限等待被该组进程中另一进程所占有的资源&#xff0c;因而永远无法得到的资源&#xff0c;这种现象称为进程死锁&#xff0c;这一组进程就称为死锁进程,如果死锁发生&#xff0c;会浪费大量系统资源&#xff…

dm365工作笔记20130731

今天把内核和照着博客http://zjbintsystem.blog.51cto.com/964211/768652配置了一遍不知道结果如何。 终于做完了&#xff0c;调通了。还是有成就的。下面把操作贴出来 l 在照博客修改的.config文件基础上&#xff1a;1.SPI没选2.选的tvp5150 注释掉了.c文件&#xff0…

2018全球最佳品牌Top25:时代巨变的一个缩影

来源&#xff1a;资本实验室10月15日&#xff0c;希尔斯控股正式向美国破产法院申请破产保护。这一消息传出&#xff0c;即引发了全球关注。作为19世纪八十年代末以邮购业务起家的零售商&#xff0c;希尔斯百货已经历一百多年的世事变化与市场风云&#xff0c;毫无疑问是美国零…

香港2013迷你制汇节即将启幕

“制汇节是一个世界的盛事。在亚洲&#xff0c;有深圳迷你制汇节和台湾迷你制汇节。在美国&#xff0c;2013年港湾地区制汇节刚刚在5月圆满举办。来自世界各地的maker展示了他们伟大的作品并分享了他们的智慧。我们相信香港也有很多maker&#xff0c;第二届香港迷你制汇节正在开…

python异步爬虫

本文主要包括以下内容            线程池实现并发爬虫回调方法实现异步爬虫协程技术的介绍一个基于协程的异步编程模型协程实现异步爬虫 线程池、回调、协程 我们希望通过并发执行来加快爬虫抓取页面的速度。一般的实现方式有三种&#xff1a; 线程池方式&#…

重磅!Gartner公布2019年十大战略科技发展趋势

来源&#xff1a;网络大数据摘要&#xff1a;10月14日至18日&#xff0c;分析师在Gartner Symposium/ITxpo 2018大会探讨了在2019年企业与组织需要探索的十大战略技术趋势(Gartner Top 10 Strategic Technology Trends 2019)。Gartner将战略性技术趋势定义为具有巨大破坏性潜力…

sixxpack破解的文章!【转】

星期天闲着没事玩游戏&#xff0c;玩游戏不能无外挂。于是百度了半天&#xff0c;找到了一个&#xff0c;看介绍貌似不错&#xff0c;就下载了下来。一看&#xff0c;竟然是用.net写的&#xff0c;下意识地Reflector了一下。发现竟是一个叫actmp的程序集。如图&#xff1a; 随…

postgres与osm初步使用

layout: post title: postgres与osm初步使用 date: 2016-9-20 categories: blog tags: [地图开发] description:地图开发 本文主要包括以下内容 postgreSQL数据库&#xff0c;用来存放地图原始数据osm2pgsql 用来将osm地图数据导入到postgreSQL  OSM数据 OpenStre…

XxIJob入门-示例

一、部署 xxlJob (一) 下载地址&#xff0c; git clone 到本地。 http://gitee.com/xuxueli0323/xxl-job https://github.com/xuxueli/xxl-job (二) 插入 xxl_job 的sql脚本&#xff1a; 在项目的 /xxl-job/doc/db/tables_xxl_job.sql &#xff0c;找到sql脚本&#xff0c…

华为数字化转型实践

来源&#xff1a;先进制造业数字化转型势在必行&#xff0c;这已成为所有企业CIO的共识。但在现实中&#xff0c;很多数字化转型计划还是陷入重重困难&#xff0c;其原因大多在于企业内部对数字化转型的认知还不够透彻。尤其是对于那些业务正处于发展和上升期的公司&#xff0c…

使用Excel VBA(快捷键)(加菜单)

将excel宏安全性调到中&#xff1a; 按altf11进入vba编辑器&#xff1a; 记住以下快捷键&#xff1a; F7 代码窗口 F4 属性窗口 ctrlR 工程资源窗口 F5 程序运行 TAb 代码缩进 SHIFTTAB 凸出 加菜单&#xff1a; 在excel表中按altf11进入代码窗口&#xff1a; 解释&#xff1a…

Mac使用入门

mac常用快捷键 全屏/退出全屏 ctrcommandF 切换到桌面 fnf11 输入法切换 ctr空格 亮度 f1、f2 声音 f11、f12 复制、粘贴 commandc、commandv 搜索 commandf 翻页 上一行是Command上箭头 上一页是CommandFn上…

赛迪研究院发布《2018年中国自动驾驶产业发展及投资价值白皮书》!

来源&#xff1a;中国电子信息产业发展研究院10月19日&#xff0c;由北京市人民政府、工业和信息化部主办&#xff0c;工业和信息化部装备工业发展中心、中国电子信息产业发展研究院&#xff08;以下简称“赛迪研究院”&#xff09;等机构共同承办的“世界智能网联汽车大会”进…