建站过程中,为了SEO优化不得不在内容页加入一些随机信息显示,以便于搜索引擎的抓取,但是数据量大了后,用rand随机会超级慢,怎么办呢?以下是一种思路

1、在userfun.php中添加自定义函数:

function zhann_get_keyid($tbname,$limit=15){
    global $empire,$dbtbpre;
    $maxid=$empire->gettotal("select max(id) as total from {$dbtbpre}ecms_{$tbname} ");
    $ids=array();
    $i=0;     
    while($i<$limit){
            $key=rand(1,$maxid);
            $key=$empire->gettotal("select id as total from {$dbtbpre}ecms_{$tbname} where id<=$key order by id desc limit 1 ");
            if(in_array($key,$ids))continue;
            $ids[]=$key;
            $i++;
    }
    $rand=implode(',',$ids);   
    return $rand;
}

2、模板中调用代码

<?php
// 获取随机数字
$randomNumbers = zhann_get_keyid('cidian');
// 构建SQL查询语句
$sql = $empire->query("select * from {$dbtbpre}ecms_cidian where id in ({$randomNumbers}) order by onclick limit 15");
// 循环输出结果
while($r = $empire->fetch($sql)){
?>
<li><a href="<?=$r['titleurl']?>" title="<?=$r['title']?>"><?=$r['title']?></a></li>
<?php
}
?>

 

注意:把表名换成自己对应的表。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。