如何从数据库中的第一次测验和第二次相同的测验中获得答案

时间:2019-07-01 19:02:57

标签: php laravel

因此,我创建了一个包含答案选项a,b,c的测验,我想从该选项中获取答案并将其保存到数据库中。如何保存到数据库中,以使第一次测验的答案与第二次测验的答案不同,以便我可以得到答案并调用该答案以在测验的得分函数中进行计算?

我尝试过的方法:

在我的控制器中

         public function score($id){
            $user_login = Auth::user()->id;
            $answers = Answer::select('user_answer')->where('jenis_quiz_id','=',$id)->where('user_id','=',$user_login)->get();//get the answer

            unset($a);
            unset($b);
            unset($c);
            $a = 0;
            $b = 0;
            $c = 0;
            if($answers->count()) {
                foreach ($answers as $answer) {
                    switch ($answer->user_answer) {
                        case 1:
                        $a++;
                        break;
                        case 2:
                        $b++;
                        break;
                        case 3:
                        $c++;   
                        break;
                    }

                        }

                        return $a+$b+$c;



                    }
                    public function getShowResultOfQuiz($id){
                        $categoryquiz= JenisQuiz::findOrFail($id);
                        $user= Auth::user()->id;
                        // $instansi = Auth::user()->instansi;
                        // $kelas = Auth::user()->kelas;

                        $score= $this->score($id);

                        $kelas = Auth::user()->kelas;
                        $instansi = Auth::user()->instansi;

                        History::create([
                            'user_id'=>$user,
                            'jenis_quiz_id'=>$id,
                            'score'=> $score,
                            'kelas' => $kelas,
                            'instansi' => $instansi
                            ]);

                            // $time_taken = date("H:i:s", strtotime(Answer::whereJenisQuizId($id)->orderBy('id', 'desc')->first()->time_taken));
                            switch ($id) {
                                case '1':
                                return view('user.pages.quizresult',compact('score','categoryquiz'));
                                break;

                                case '2':
                                return view('user.pages.quizanxietyresult',compact('score','categoryquiz'));
                                break;

                                case '3':
                                return view('user.pages.quizdepresiresult',compact('score','categoryquiz'));
                                break;
                            }

                        }

                    }

问题:无法将答案与第一次测验和第二次测验区分开 (来自相同的测验形式,但我参加了两次,以及如何区分两者。

我上面的代码结果是从第一次尝试到第二次尝试的得分,如何不添加????

0 个答案:

没有答案