2014-01-05 43 views
0

我有一個HTML頁面,提供了多個選擇題和一個提交按鈕。 Submit按鈕導致一個.php頁面,其中包含以下代碼:1)連接到phpmyadmin的sql數據庫和相關的表格; 2)下面的代碼告訴/提醒用戶它是什麼問題號碼,實際問題,正確的回答(來自數據庫)和他們提交的答案。計算PHP鏈接到數據庫的測驗得分

我的問題是,我想要一個分數來計算和傳達給用戶,它不是很工作。錯誤消息告訴我,下面的行不工作

$answered = $row['select'.$_GET['a'.$x]] ; 

我把這個從另一個提問/回答論壇,我不太清楚是什麼完全的狀態,但它似乎是導致該錯誤

數據庫很簡單;僅限Questionid,Questiontext和Correctanswer列。

瀏覽器顯示以下內容:

Question Number: 1 
Question: ________ hablo 
Correct Answer: Yo 
Your Answer: Yo 

說明:未定義指數:A2在C:\ XAMPP \ htdocs中\ SSF \ 1B上 線33

通知results.php:未定義索引:選擇C:\ xampp \ htdocs \ SSF \ 1B results.php on line 33您從0個問題中正確地回答了0個問題!

代碼

$result = mysql_query("SELECT * FROM 1b") 
       or die ('Connection to table failed'); 

$x = 0; 
$score = 0; 
while ($row = mysql_fetch_assoc($result)){ 

    echo "Question Number: " . $row['Questionid'] . '<br />'; 
    echo "Question: " . $row['Questiontext'] . '<br />'; 
    echo "Correct Answer: " . $row['Correctanswer'] . '<br />'; 
    foreach ($_GET['select'] as $value) 
    echo "Your Answer: " . $value."\n" . '<br />'; 

    $answered = $row['select'.$_GET['a'.$x]] ; 
    $correct = $row['Correctanswer'] ; 

    if ($answered == $correct) { 
     $score++; 
     $acolor = 'green' ; 
    } 
    else { 
     $acolor = 'red' ; 
    } 

    $x = $x + 1; 
} 
echo 'You answered ' . $score . ' out of ' . $x . ' questions correctly!'; 
?> 

回答

0
$answered = $row['select'.$_GET['a'.$x]] ; 

但是當你回聲 '你的回答',你用$值。這不工作嗎?

$answered = $value ; 

(這將是有益的,看看你是雖然在提交表格...)

+0

我現在明白了。我正在複製變量。我刪除了行$ answers = $ row ['select'。$ _ GET ['a'。$ x]];並將If語句調整爲$ value。現在起作用了。謝謝 – user3163399

0

一個未定義的索引錯誤是,當你在一個關鍵的數組引用值你所得到的,但鍵不存在。例如:

$array = array(
     'abc' => 1, 
     'def' => 2, 
); 

如果我現在嘗試引用像$陣列[「Z」]一些隨機密鑰我會得到你提到的錯誤。

你得到的第一個錯誤是告訴你,你的GET參數甚至沒有設置'a2'鍵。第二個錯誤是因爲'select'鍵不存在於你的$ row數組中。

我們需要查看您提交的表單,以便正確理解究竟是什麼錯誤。