二维码
搬瓦工 locvps

    帝国CMS的安全性能和扩展性能都很强,VPS全科网本身也有多个站点在使用帝国CMS建站系统,尤其是一个黄页站点,体量比较大。为了更好的进行SEO优化,使用了随机调用的功能。

   以前VPS全科网也分享过帝国CMS随机调用的文章。

    但是目前VPS全科网遇到的问题是限定栏目比较麻烦,同时之前的代码都要求ID需要连续。但是建站的朋友都会知道,ID很多情况下都会有不连续的情况。所以VPS全科网又收集网络上的信息。对代码进行了整理。代码如下。

随机调用帝国cms指定栏目下的几条信息,简单的使用order by rand()效率低下。官方给出的方法没有考虑id不连续的情况,以下为改进后的方法:

 <?php
$classid=18; //指定栏目id,当前为 $navclassid,多个请用分号隔开,比如'1,10' 表示调用栏目1和10下的所有终极栏目
$limit=7;// 七条
$tbname='news';//数据表
list(,$classids)=sys_ReturnMoreClass($classid,1);
$ids=$empire->gettotal("select group_concat(id) as total from {$dbtbpre}ecms_{$tbname} where $classids");
$idsr=explode(',',$ids);
$max=count($idsr)-1;
if($max<$limit-1){
    $rand=implode(',',$idsr); 
}else{
    $ids=array();
    $i=0;
    while($i<$limit){
       $key=rand(0,$max);
       if(array_key_exists($key,$ids))continue;
       $ids[$key]=$idsr[$key];$i++;
    }
    $rand=implode(',',$ids);  
}

?>
 [e:loop={"select * from {$dbtbpre}ecms_{$tbname} where id in($rand) limit $limit",0,24}]
 <a href="<?=$bqsr['titleurl']?>"><?=$bqr[title]?></a>
 [/e:loop]


locvps
评论专区
  • 昵 称必填
  • 邮 箱必填
  • 网 址选填
◎已有 0 人评论
BudgetVM
作者介绍
总干事

总干事

总干事作为本站编辑,主要负责VPS优惠、域名优惠和站长百科三个栏目。
80vps henghost
budgetvm sugarhosts
二维码

分享:

支付宝

微信