帝国CMS高效随机调用代码函数分享

帝国CMS随机调用用’rand()’参数就可以了。

SQL随机调用方法

[e:loop={
‘select * from [!db.pre!]ecms_news where checked=1 order by rand() desc limit 10’,
10,
24,
0}]

<li><a href=
“<?=$bqsr[‘titleurl’]?>” target=
“_blank”><?=$bqr[
‘title’]?></a> </li>

[/e:loop]

 

灵动标签随机调用方法

[e:loop={
‘selfinfo’,
8,
0,
0,
,
‘rand()’}]

<li><a href=
“<?=$bqsr[‘titleurl’]?>” target=
“_blank”><?=$bqr[
‘title’]?></a> </li>

[/e:loop]

 

下面这段是官方给出大数据高效随机调用方法,先用php随机出信息ID,然后SQL调用用id in (php随机的ID列表)

高效随机调用方法

<?php

$randnum=
10;
//随机数量

$randids=
;

$randdh=
;


for($i=
1;$i<=$randnum;$i++)

{

$randids.=$randdh.rand(
1,
100000);
//1为最小ID,100000为最大ID

$randdh=
‘,’;

}

?>

[e:loop={栏目ID,显示条数,操作类型,只显示有标题图片,
“id in ($randids)”}]

<li><a href=
“<?=$bqsr[‘titleurl’]?>” target=
“_blank”><?=$bqr[
‘title’]?></a> </li>

[/e:loop]

 

不过这段中的调用数量是固定死的,不方便多次调用,精准像素封装成函数方法。

高效随机调用函数

<?php

$nuber=$empire->gettotal(
‘select count(*) as total from phome_ecms_news’);

function rands($num,$nubers){

$randnum=$num;

$randids=
;

$randdh=
;


for($i=
1;$i<=$randnum;$i++){

$randids.=$randdh.rand(
1,$nubers);

$randdh=
‘,’;

}

$allstr.=$randids;

        echo $allstr;

}

?>

 

首先查询所有信息总数,然后在赋值随机数量。

这段代码只需要写一次,可以重复多次调用。

调用方法

<?=rands(
10,$nuber)?>

 

10代表调用10个,调用多少改成多少数字。

附上灵动标签的调用方法

[e:loop={
0,
1,
3,
0,
“id in (‘rands(1,$nuber)’)”}]

<li><a href=
“<?=$bqsr[‘titleurl’]?>” target=
“_blank”><?=$bqr[
‘title’]?></a> </li>

[/e:loop]