2016-02-10 155 views
0

我正在嘗試創建一個數據庫驅動的測試,並需要一些計分機制的幫助。顯示正確答案的數量

選擇他們所選擇的答案,推動一個提交按鈕後,用戶被轉發到具有以下腳本的頁面時 - 接聽鍵也計數問題/回答:

$answers = array(1 => array('D'), 
      2 => array('France'), 
      3 => array('B'), 
      4 => array('C', 'D'), 
      5 => array('D')); 
$total = count($answers); 

我的大多數測試將有10或25個問題。在上面的例子中,呼應$總將顯示5

接下來是計算實際得分的腳本:

foreach($answers as $num => $answer){ 
    $qa = $_POST['q'.$num.'']; 

if(is_array($answer)){ 
    if($qa === $answers[$num]){ 
     $correct++; 
    } 
} else if($qa === $answers[$num]){ 
    $correct++; 
} 

$grade = ($correct/count($answers))*100; 
} 

......我像這樣顯示:

echo '<div style="background: #ff0;">Score: '.$grade.'%</div>'; 

我最後的顯示器看起來像這樣:

得分: 90%(9個10正確)

(使用十問題測驗作爲示例)

顯示「滿分10分」是毫不費力的;我只需插入$ total(答案的數量)。但誰能告訴我如何顯示正確答案的數目(在這種情況下爲9)

我可以製作一個簡單的開關,它可以用於有10或25個答案的測試。但我希望有一個腳本能夠自動計算正確答案的數量,而不管答案的總數是多少。

+0

對於最可能從正確的數據庫查詢中獲得的答案數量,只需使用PHP將其回顯到屏幕即可。 –

+0

爲什麼你不能得分:'。$等級'。 ('。$ correct。'out of'。$ answers。')''? – Wistar

+0

創建一個包含正確答案的數組並檢查它。 –

回答

1

我盡我所能來了解你需要什麼,所以請嘗試以下代碼:

<?php 
$answers = array(1 => array('D'), 
      2 => array('France'), 
      3 => array('B'), 
      4 => array('C'), 
      5 => array('D')); 
$total = count($answers); 

$correct = 0; 
foreach($answers as $num => $answer){ 
    $qa = 'C'; // Change this to your own 

if(is_array($answer)){ 
    if($qa === $answers[$num][0]){ // Added the index 0 
     $correct++; 
    } 
} else if($qa === $answers[$num]){ 
    $correct++; 
} 

$grade = ($correct/count($answers))*100; 
} 

echo '<div style="background: #ff0;">Score: '.$grade.'%</div>'; 

?> 

我已經刪除「d」從指數4,我的變化是在註釋中。 告訴我,如果這是工作?

+0

非常完美! –