tp5 隨機從數據庫取數據方法(不重複)

1.封裝方法

 function getRandTable($nums, $tables)
        {
            $num = $nums;    //需要抽取的默認條數
            $table = $tables;    //需要抽取的數據表
            $pk = Db::name($table)->getPK();//獲取主鍵
            $countcus = Db::name($table)->field($pk)->select();//查詢數據
            $con = '';
            foreach($countcus as $v=>$val){
                $con.= $val[$pk].'|';
            }
            $array = explode("|",$con);// 拆分
            $data = [];
            foreach ($array as $v){
                if (!empty($v)){
                    $data[$v]=$v;//循環健值
                };
            }
            $a=array_rand($data,$num) ;//隨機數組
            $list = Db::name("$table")->where($pk,'in',$a)->select();
            return json($list);
            }

2.查詢數據

 $q =Db::name('cms_testdetail')->where('rand()')->limit(2)->select();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章