我正在尝试使用SQL语句将一些数据INSERT
放入表中。用户完成了一个包含10个问题的调查,然后我想使用一个SQL语句将这10个答案INSERT
放入数据库。因此,实际上只有两个要更改的字段是questionID
和answer
列?请注意,我刚刚在<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();
?>
您只需要在bind_param
循环内移动foreach
语句
foreach ($answer_bank as $a_b) {
list($a) = $a_b;
$stmt->bind_param("iii", $seshID , $questionID , $a);
$stmt->execute();
}