建站过程中,为了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
}
?>
注意:把表名换成自己对应的表。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)