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]
下面这段是官方给出大数据高效随机调用方法,先用PHP随机出信息ID,然后SQL调用用id in (php随机的ID列表)
- [e:loop={'selfinfo',8,0,0,'','rand()'}]
- <li><a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> </li>
- [/e:loop]
高效随机调用方法
不过这段中的调用数量是固定死的,不方便多次调用,,美文苑封装成函数方法。
- <?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;
- }
- ?>
这段代码只需要写一次,可以重复多次调用。
调用方法
10代表调用10个,调用多少改成多少数字。
- <?=rands(10,$nuber)?>
附上灵动标签的调用方法:
- [e:loop={0,1,3,0,"id in ('rands(1,$nuber)')"}]
- <li><a href="<?=$bqsr['titleurl']?>" target="_blank"><?=$bqr['title']?></a> </li>
- [/e:loop]