【问题标题】:Calculating a score for a quiz in PHP linking to a database计算链接到数据库的 PHP 测验的分数
【发布时间】:2014-01-05 21:12:24
【问题描述】:

我有一个带有多项选择题和一个提交按钮的 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 

注意:未定义索引:C:\xampp\htdocs\SSF\1B results.php 中的 a2 第 33 行

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

【问题讨论】:

    标签: php mysql multiple-choice


    【解决方案1】:
    $answered = $row['select'.$_GET['a'.$x]] ;
    

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

     $answered = $value ;
    

    (查看您提交的表单会很有帮助...)

    【讨论】:

    • 我现在明白了。我在复制变量。我删除了 $answered = $row['select'.$_GET['a'.$x]] 行;并将 If 语句调整为 $value。现在可以了。谢谢
    【解决方案2】:

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

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

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

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

    我们需要查看您提交的表单才能正确了解到底是什么问题。

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 2020-09-21
      • 2017-10-10
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多