Как получить каждое значение индекса с помощью вложенного цикла foreach и сохранить в базу данных php - PullRequest
0 голосов
/ 06 сентября 2018

Я сдаю онлайн-экзамен и хочу получить ответ экзаменуемого и сохранить его в базе данных. Теперь все мои вопросы и ответы испытуемого хранятся в массиве с использованием текста типа ввода с именем name = question [] и флажком типа ввода name = "checker [questionID]", Это пример результата.

Идентификатор вопроса: Массив ([0] => 131 [1] => 132 [2] => 133 [3] => 130)

и

Идентификатор ответа: Массив ([131] => 330 [132] => 336 [133] => 339 [130] => 328)

Теперь я хочу сохранить это значение в моей базе данных следующим образом: enter image description here

Вот мой php-код, и он не работает:

$selected = $_POST["checker"];
$quest_id = $_POST["question"];

foreach ($quest_id as $key => $q_id) {
 foreach ($selected as $key => $a_id) {
   $get_ans = mysqli_query($connections, "INSERT INTO taker_answer VALUES('','$q_id','$a_id')");
 }
}

Пожалуйста, помогите мне. Спасибо :) 1025 *

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Здесь вы уязвимы для SQLIA, пожалуйста, используйте подготовленную инструкцию mysqli или PDO.

Теперь, для вашего кода, вам не нужен второй цикл, как я думаю. Вы просто выбираете ответ из индекса массива, как показано ниже

$selected = $_POST["checker"];
$quest_id = $_POST["question"];
// here $key hold the value of index  (hold the key if it's associated array)
// and you can get corresponding value of selected answer by $selected[$key] as $key keep changing its value inside loop
foreach ($quest_id as $key => $q_id) {
    $get_ans = mysqli_query($connections, "INSERT INTO taker_answer VALUES('',$q_id,$selected[$key])");
}
0 голосов
/ 06 сентября 2018

Вам не нужен массив $_POST["question"]. Поскольку ваш $_POST["checker"] имеет идентификатор вопроса в качестве ключей, вы можете просто сделать следующее:

$selected = $_POST["checker"];

foreach ($selected as $key => $a_id) {
   $get_ans = mysqli_query($connections, "INSERT INTO taker_answer VALUES('','$key','$a_id')");
}

и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...