Я пытаюсь INSERT
добавить некоторые данные в мою таблицу с помощью оператора SQL. Пользователь завершает опрос, который состоит из 10 вопросов, а затем я хочу INSERT
эти 10 ответов в БД, используя один оператор SQL. Таким образом, по существу, только 2 поля, которые будут изменены, будут столбцы questionID
и answer
? Обратите внимание, что я только что привел 2 вопроса в качестве примера в тегах <form>
для информации.
анкета:
<!-- Attempt 2 of questionnaire -->
<form action="scripts/submit-survey.php" method="post">
<?php
$questionnaire = "Welcome Questionnaire";
$questionID = 1;
$stmt = $conn->prepare ("SELECT `questionnaire`.`questionnaireName`, `questionnaireQuestions`.`questionID`,`question`.`question` FROM `questionnaire` INNER JOIN `questionnaireQuestions` ON `questionnaire`.`questionnaireID` = `questionnaireQuestions`.`questionnaireID` INNER JOIN `question` ON `questionnaireQuestions`.`questionID` = `question`.`questionID` WHERE `questionnaire`.`questionnaireName` = ? AND `question`.`questionID` = ?");
$stmt->bind_param("si", $questionnaire, $questionID);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result -> fetch_assoc())
{
?>
<p><?php echo $row['question']; ?></p>
<?php
}
?>
<label><input type="radio" name="q1" value="1"> 1</label>
<br>
<label><input type="radio" name="q1" value="2"> 2</label>
<br>
<label><input type="radio" name="q1" value="3"> 3</label>
<br>
<?php
$questionnaire = "Welcome Questionnaire";
$questionID = 2;
$stmt = $conn->prepare ("SELECT `questionnaire`.`questionnaireName`, `questionnaireQuestions`.`questionID`,`question`.`question` FROM `questionnaire` INNER JOIN `questionnaireQuestions` ON `questionnaire`.`questionnaireID` = `questionnaireQuestions`.`questionnaireID` INNER JOIN `question` ON `questionnaireQuestions`.`questionID` = `question`.`questionID` WHERE `questionnaire`.`questionnaireName` = ? AND `question`.`questionID` = ?");
$stmt->bind_param("si", $questionnaire, $questionID);
$stmt->execute();
$result = $stmt->get_result();
while($row = $result -> fetch_assoc())
{
?>
<p><?php echo $row['question']; ?></p>
<?php
}
?>
<label><input type="radio" name="q2" value="1"> 1</label><br>
<label><input type="radio" name="q2" value="2"> 2</label><br>
<label><input type="radio" name="q2" value="3"> 3</label><br>
<input type="submit" value="Submit">
</form>
submit-survey. php
<?php
require 'db.php';
session_start();
$seshID = $_SESSION['studentID'];
$a1 = $_POST['q1'];
$a2 = $_POST['q2'];
$a3 = $_POST['q3'];
$a4 = $_POST['q4'];
$a5 = $_POST['q5'];
$a6 = $_POST['q6'];
$a7 = $_POST['q7'];
$a8 = $_POST['q8'];
$a9 = $_POST['q9'];
$a10 = $_POST['q10'];
$answer_bank = array(
$a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8, $a9, $10
);
$stmt = $conn->prepare ("INSERT INTO `studentAnswer` (`studentAnswerID`, `studentID`, `questionID`, `answer`) VALUES (NULL, ? , ? ,?)");
//echo $i;
//echo ${"a". $i};
$stmt->bind_param("iii", $seshID , $questionID , $a);
foreach ($answer_bank as $a_b) {
list($a) = $a_b;
$stmt->execute();
}
$result = $stmt->get_result();
?>
Таблица БД: ![DB](https://i.stack.imgur.com/lK9P6.png)