0

複数選択の質問と送信ボタンを含む HTML ページがあります。[送信] ボタンをクリックすると、1) phpmyadmin に sql データベースと関連するテーブルに接続するためのコードを含む .php ページが表示されます。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 の 33 行目の a2

Notice: Undefined index: select in 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!';
?>
4

2 に答える 2

0

未定義のインデックス エラーは、キーによって配列内の値を参照するときに発生するものですが、そのキーは存在しません。例えば:

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

$array['z'] のようなランダムなキーを参照しようとすると、あなたが言及したエラーが発生します。

最初に表示されるエラーは、GET パラメータに「a2」キーが設定されていないことを示しています。「select」キーが $row 配列に存在しないために発生する 2 番目のエラー。

ただし、正確に何が間違っているのかを正しく理解するには、送信しているフォームを確認する必要があります。

于 2014-01-05T21:30:14.640 に答える
0
$answered = $row['select'.$_GET['a'.$x]] ;

しかし、「あなたの答え」をエコーするときは、$value を使用します。これはうまくいきませんか?

 $answered = $value ;

(ただし、送信しているフォームを確認すると便利です...)

于 2014-01-05T21:17:17.407 に答える