2017-08-19 25 views
0

我正在構建一個考試報告模塊,它由三部分組成,即第1部分爲1分和10個問題,第2部分爲2分和5個問題,第3部分爲4分和5的問題。問題總數爲20,總分數爲40.現在,當用戶結束考試時,我試圖在顯示部分明智報告的報告中顯示他的結果。這裏出現的問題是,如果用戶只嘗試一個部分,並且假設他已經獲得了3個正確答案,所以報告必須在部分1中顯示3,在其他兩部分中顯示0,但是每次報告都在3中提取所有部分,或者我們可以說所有部分都有一個部分的值。我需要顯示的是「正確答案」的數目3-0-0,因爲用戶只嘗試過一個部分。儘管目前所有部分都需要3個。重複報告中不同部分的值

這裏是我的前端代碼,

<tr><td>3</td> 

        <td>Correct Answers</td> 

        <td><?php echo $rep->sectionwiseMockReport($id, $chapterId,1); ?></td> 

        <td><?php echo $rep->sectionwiseMockReport($id, $chapterId,2); ?></td> 

        <td><?php echo $rep->sectionwiseMockReport($id, $chapterId,3); ?></td> 

        <td><?php echo ($rep->sectionwiseMockReport($id, $chapterId,1)+$rep->sectionwiseMockReport($id, $chapterId,2)+$rep->sectionwiseMockReport($id, $chapterId,3)) ; ?></td> 

       </tr> 

和被稱爲是成一個類的功能,

function sectionwiseMockReport($userId, $chapterId,$section) 

{ 
    $counter1 = 0 ; 
    $counter2 = 0 ; 
    $counter3 = 0 ; 
    $total  = 0 ; 

    $result = mysql_query("SELECT question_id, option_id from tbl_result_chapter WHERE user_id = $userId AND chapter_id = $chapterId");  
     while($row = mysql_fetch_array($result)) 
     { 
      if($this->getRightOptionChapter($row['question_id']) == $row['option_id']) 
      { 
       $section = $this->idToField("tbl_question_chapter","section",$row['question_id']); 
       if($section == 1) 
       { 
        $counter1 = $counter1 + 1 ; 
       } 
       if($section == 2) 
       { 
        $counter2 = $counter2 + 1 ; 
       } 
       if($section == 3) 

       { 

        $counter3 = $counter3 + 1 ; 
       } 
      } 
     } 
      if($section == 1) 
       { 
        return $counter1; 
       } 

       if($section == 2) 
       { 
        return $counter2; 
       } 
       if($section == 3) 
       { 
        return $counter3; 
       } 
} 

最後是功能,

function getRightOptionChapter($questionId) 
{ 
     $result = mysql_query("SELECT * from tbl_chapter_answer a INNER JOIN tbl_chapter_options o on a.options_id = o.id WHERE a.question_id = $questionId");  
     $row = mysql_fetch_array($result);  
     return $row['options_id']; 
} 

任何建議或幫助將成爲救星。幾天來一直在尋找這個,但沒有成功。

回答

0

最後得到了問題。變量$section在while循環內部和while循環外創建衝突。改變了while循環內部的變量名稱並且迅速地工作。