protected function setNextListening($student_id, $listening_id) { $current = Current::model()->find('student_id=:student_id', array(':student_id' => $student_id)); $current_session_id = $current->session_id; //set next listening $session_listenings = SessionListening::model()->findAll('session_id=:session_id', array(':session_id' => $current_session_id)); $next_listening_id = $this->getNextListening($session_listenings, $listening_id); if ($next_listening_id != -1) { if ($current) { $current->listening_id = $next_listening_id; $current->save(); } } }
public function actionResults() { $student_id = Yii::app()->request->getQuery("student_id", NULL); $current = Current::model()->find('student_id=:student_id', array(':student_id' => $student_id)); $all_sessions = Session::model()->findAll('mod_id=:mod_id', array(':mod_id' => $current->mod_id)); $all = array(); foreach ($all_sessions as $key0 => $session) { $session_id = $session->session_id; $session_listenings = SessionListening::model()->findAll('session_id=:session_id', array(':session_id' => $session_id)); $all[$key0]["session_id"] = $session->session_id; $all[$key0]["session_name"] = $session->session_name; $all[$key0]["session_order"] = $session->session_order; $all[$key0]["mod_id"] = $session->mod_id; $all[$key0]["listenings"] = array(); foreach ($session_listenings as $key => $session_listening) { $temp_listening_id = $session_listening->listening_id; $listening = Listening::model()->find('listening_id=:listening_id', array(':listening_id' => $temp_listening_id)); $all[$key0]["listenings"][$key] = array('listening_id' => $listening->listening_id, 'listening_name' => $listening->listening_name, 'listening_repeat_number' => $listening->listening_repeat_number, 'listening_learning_guide_availability' => $listening->listening_learning_guide_availability); $criteria = new CDbCriteria(); $criteria->addCondition("listening_id=:listening_id"); //$criteria->order='RAND()'; $criteria->params = array(':listening_id' => $listening->listening_id); $questions = Question::model()->findAll($criteria); //$questions=Question::model()->findAll('listening_id=:listening_id',array('listening_id'=>$listening->listening_id)); foreach ($questions as $key2 => $question) { $all[$key0]["listenings"][$key]['questions'][$key2] = array('question_id' => $question->question_id, 'question_body' => $question->question_body, 'question_correct_answer_id' => $question->question_correct_answer_id); $criteria = new CDbCriteria(); $criteria->addCondition("question_id=:question_id"); //$criteria->order='RAND()'; $criteria->params = array(':question_id' => $question->question_id); $answers = Answer::model()->findAll($criteria); //$answers=Answer::model()->findAll('question_id=:question_id',array(':question_id'=>$question->question_id)); foreach ($answers as $key3 => $answer) { $all[$key0]["listenings"][$key]['questions'][$key2]['answers'][$key3] = array('answer_id' => $answer->answer_id, 'answer_body' => $answer->answer_body); } } } } $this->render('results', array('all' => $all, 'student_id' => $student_id)); }