0

我有一个带有多项选择题和一个提交按钮的 HTML 页面。提交按钮会导致一个 .php 页面,其中包含以下代码:1)连接到 phpmyadmin 的 sql 数据库和相关表,2)下面的代码告诉/提醒用户它是什么问题编号,实际问题,正确答案(来自数据库)和他们提交的答案。

我的问题是我希望计算一个分数并将其传达给用户,但它不太有效。一条错误消息告诉我以下行不起作用

$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 results.php 第 33 行

注意:未定义的索引:在第 33 行的 C:\xampp\htdocs\SSF\1B results.php 中选择 您正确回答了 1 个问题中的 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!';
?>
4

2 回答 2

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

但是,当您回显“您的答案”时,您使用的是 $value。这不行吗?

 $answered = $value ;

(虽然看到您提交的表格会很有帮助......)

于 2014-01-05T21:17:17.407 回答
0

未定义的索引错误是当您通过键引用数组中的值时得到的,但该键不存在。例如:

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

如果我现在尝试引用一些随机键,例如 $array['z'] 我会得到你提到的错误。

您收到的第一个错误是告诉您您的 GET 参数甚至没有设置“a2”键。您遇到的第二个错误是因为 $row 数组中不存在“select”键。

我们需要查看您提交的表格,以便正确了解究竟是什么错误。

于 2014-01-05T21:30:14.640 回答