切换风格

默认晚霞 雪山 粉色心情 伦敦 花卉 绿野仙踪 加州 白云 星空 薰衣草 城市 简约黑色 简约米色 龙珠
回复 0

3793

主题

3793

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12621
基于thinkphp5数据库文章随机排序[复制链接]
发表于 2022-4-8 23:15:45 | 显示全部楼层 |阅读模式
$num = 8;      //需要抽取的默认条数

$table = 'cms_archives';      //需要抽取的数据表

$countcus = Db::name($table)->count();      //获取总记录数

$min = Db::name($table)->min('id');      //统计某个字段最小数据

if($countcus < $num){$num = $countcus;}

$i = 1;

$flag = 0;

$ary = array();

while($i<=$num){

      $rundnum = rand($min $countcus);//抽取随机数

      if($flag != $rundnum){

              //过滤重复

              if(!in_array($rundnum$ary)){

                    $ary[] = $rundnum;

                    $flag = $rundnum;

              }else{

                    $i--;

              }

              $i++;

      }

}

$list = Db::name($table)->where('id''in'$ary'or')->select();
复制代码




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|不懂 ( 粤ICP备14042591号-1 )|网站地图

GMT+8, 2024-11-22 12:56 , Processed in 0.069622 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部