随机查出满足条件的5条数据(tp5)
随机查出满足条件的5条数据
public function showQuestion() { $data['type'] = 20; $data['level'] = 1 $data['level'] = (int)$data['level']; do{ $question = Db::name('questions') -> where("category_id=$data[type] and isdelete!=1") -> order('rand()') // rand()产生0-32768之间的一个随机数,如果要指定范围则使用 rand(min,max) -> limit(5) -> select(); if(empty($question)){ // 如果没有满足条件的数据,则跳出循环,否则会在这儿死循环。 break; }else{ //计算难度系数 $sum = 0; foreach($question as $value){ $sum+=$value['difficultyDegree']; } } }while($sum > $data['level'] || $sum <= $data['level']-10); // 如果难度系数大于20 或者小于10则重新查询,直到查询出满足条件的5条数据为止 。 if($question){ return json($question); }else{ return json(false); } }