建站技术网专注分享网站建设技术,网站建设教程,真正帮你学会做网站技术,轻松解决网站建设过程中遇到的常见问题,为广大站长服务。 网站地图 | 收藏本站 | 订阅
域名投资,就来找米网,认准网址:www.zhaomi.cc 专业仿站,就到仿站网:www.fangzhan.org
  站内公告: ·帝国cms教程内容已更新,欢迎关注     ·建站技术网采用阿里云服务器,备案已通    
您当前的位置:建站技术网 > cms教程 > 帝国cms教程

帝国cms按照会员投稿数量进行排名的实现方式的一些思考

时间:2019-05-12 11:13:03  来源:网络收集  整理: 建站技术网 www.jzjsw.com     点击:0次

帝国cms自身是不带会员的排名功能的,我们在输出会员列表时可以用mysql查询语句来根据查询字段来实现排序,例如下面这样,按照会员的userfen字段进行排序输出,但这样只能按照排序输出会员列表,却无法实际取出会员的十几排名,例如我们有十万名会员,该会员排在93214名,我们就无法得知了。

折叠PHP 代码
  1. $sql=$empire->query("select * from {$dbtbpre}enewsmember order by userfen desc limit 10");  
  2. while($r=$empire->fetch($sql))        //循环获取查询记录  
  3. {  
  4.         echo"会员名字:".$r['username']."<br>";  
  5. }  

后来cms大学小编想到了下面的方法,利用计划任务,或者其他类似计划任务的方式在每天分时段执行,脚本的功能是计算出会员的投稿数量,存储infonum字段,而后按照infonum字段通过循环计算出排名,并存储pxnum字段,以此来实现帝国cms会员按照投稿数量获得实际的静态排名,然后在其他页面加以利用。

代码如下,此处未考虑大数据量下可能导致超时的问题,只是一个引子。具体的优化方式可以参考帝国cms刷新文章的分组方式:

折叠PHP 代码
  1. $sql=$empire->query("select userid from {$dbtbpre}enewsmemberadd order by infonum,lasttime desc");        //查询会员表按照投稿数量、最后登录时间排序  
  2. $i=0;  
  3. while($r=$empire->fetch($sql))        //循环获取查询记录  
  4. {  
  5.         $i++;  
  6.         $empire->query("update {$dbtbpre}enewsmemberadd set pxnum='$i' where userid='$r[userid]'");  
  7. }  

这样我们就可以随时取出pxnum这个排名字段值来显示了。这里可能有人会觉得这个排名并非实时排名,不够理想。如果数据量非常小,完全可以让这个脚本1分钟执行一次或者更短间隔,这样就能做到更趋近实时了,而如果数据量非常大,动辄数十万会员,这个数字是否真的实时显示也就没有那么重要了,况且如此大的数据量完全可以使用缓存来存储计算了,而不是实时读取再存库这样耗费资源的方式。

帝国cms按照会员投稿数量进行排名的实现方式的一些思考.jpg

 

标签:
文章标题:帝国cms按照会员投稿数量进行排名的实现方式的一些思考
文章网址:http://www.jzjsw.com/cmsJiaocheng/diguocms/11439.html
上一篇:帝国cms清空前台会员cookie专用函数EmptyEcmsCookie()
下一篇:让帝国cms支持ssl证书https访问后台
来顶一下
返回首页
返回首页
相关文章
    无相关信息
推荐资讯
如何通过SEO优化排名赚钱?SEO赚钱方法
如何通过SEO优化排名赚
seo优化教程:网站seo内容优化
seo优化教程:网站seo
SEO细节:企业SEO如何快速为新站做出效果
SEO细节:企业SEO如何
电商技术将如何发展?2018年有这五个大胆预测
电商技术将如何发展?
最新文章
栏目更新
栏目热门