私はLaravelにとって非常に新しいです。Laravel 5.1の得点の計算方法
私は3つの申請者として名前のテーブル、質問、回答があります。
応募
id jobid name
1 151 ABC
2 151 DEF
は
id qid jobid aaplicantid answer
1 21 151 1 1
2 22 151 1 0
3 21 151 2 1
4 22 151 2 1
質問
回答します210id jobid answer
21 151 1
22 151 1
ここで私は質問に基づいて応募者の%の割合を計算したいと答えています。回答者テーブルは1つの仕事を想定しています。応募者が質問表の回答と一致すれば100%一致していない場合は、スコアから差し引かれます。
私はスコアが例えば のように分割する必要があるとしますつのジョブが
id name score joid
1 ABC 50% 151
2 DEF 100% 151
そして、私は次のように使用していますが、次のように申請リストがあるべきジョブID 151のための5つの質問
score=>100/count(questions)=20 for each matched answer
を持っています予想される結果が得られません。
$apps=applicants::where('jobid','=',$jobId)->get();
foreach($apps as $apo){
$appid[]=$apo->id;
}
$score=answers::whereIn('appid',$appid)->where('jobid','=',$jobId)->get();
$qid=array();
foreach($score as $s){
$qid[]=$s->qid;
}
$queid=questions::whereIn('id',$qid)->where('jobid','=',$jobId)->get();
$calscore=100/(count($queid));
$key = 0 ; $finalscore = array();$sss = 0;
for($n = 0; $n< count($queid); $n++) {
foreach($queid as $que){
$quei[]=$que->id;
$weight[]=$que->weight;
foreach ($score as $s){
$qid[]=$s->qid;
$sc[]=$s->answer;
if($que->id==$s->qid){
if($weight==$sc){
$finalscore=$sss+$calscore;
$sss++;
}
}
}
$key++;
}
}
dd($finalscore);
でも、私は結合クエリで適切な結果を得られませんでした。雄弁なモデルで可能ですか?
誰かがこれを解決するために私を助けてくださいできますか?