オンライン テストを実行するための php スクリプトがあります。テストを受けている間、ポストメソッドを使用してアクションページで回答を取得しています。回答は、質問IDと選択されたオプション値(trueまたはfalse /候補者がそのように入力した回答)を含む配列として渡されます。候補者によってマークされた回答をデータベースに挿入します。コードは次のとおりです。
$student_id=$_POST['name'];
$survey_id=$_POST['survey_id'];
$store = array();
if (isset($_POST['question_id'])) {
foreach ($_POST['question_id'] as $key => $option) {
$option1 = array_filter($option);
print_r($option1);
if (count($option1) > 1) {
$option2 = implode("^", $option1);
$store[] = $option2;
} else {
$value = $option1;
$i = implode(null, $option1);
$store[] = $i;
}
}
print_r($store);
}
$t = new DateTime();
$t->setTimestamp($time = time());
$t->setTimeZone(new DateTimeZone("Asia/Singapore"));
$date = $t->format(DateTime::RFC850);
$SQL = "INSERT INTO answer_table(student_id ,survey_id, ans_1, ans_2, ans_3, ans_4, ans_5, ans_6, ans_7, ans_8, ans_9, ans_10, timestamp) VALUES ('$student_id','$survey_id', '$store[0]', '$store[1]', '$store[2]', '$store[3]', '$store[4]', '$store[5]', '$store[6]', '$store[7]', '$store[8]', '$store[9]', '$date')";
$result = mysql_query($SQL);
生徒が順番に (質問番号 1 から 10 まで) テストに答えると、コードは正常に機能します。しかし、候補者がランダムに回答すると (最初の 10 の次に 5 のように)、ans_1 という名前のテーブル フィールドに、質問番号 10 の回答が挿入されます。対応する回答を含むフィールドを挿入する必要があります。つまり、どんなパターンでも、候補者はテストを受けます。
誰でもこの問題を解決するのを手伝ってくれますか? 前もって感謝します。