Как я могу исправить свой код, чтобы сохранить 3 значения в массиве, используя php, mysql, чтобы сделать опрос?

Здравствуйте, я пытаюсь сделать опрос, используя php и Mysql, с кодом ниже, я сохраняю каждый ответ на вопросы, но когда я пытался сохранить comments_per_questions, он не сохранял это поле в массиве, а только один комментарий.

Как я могу исправить эту функцию, чтобы сохранить в базе данных вопросы, ответы и комментарии по вопросам?

Заранее спасибо.

Структура базы данных

"Questions" (idquestion, question)

"Surveys" (idsurvey, idquestion, answers, comments_per_question, survey_number)

Эта часть кода сохраняет вопрос и ответы из формы опроса.

public function NewSurveyMulti($answer = array())
{
if(!empty($answer)) {
foreach($answer as $questi => $value  ) {
$this->MyDB->Write("INSERT INTO surveys (`idquestion`, `answers`,`comments_per_questions` )
VALUES(
'".$questi."',
'".$value[0]."',
'".$_POST["comment"]."')");
}
}

survey_form.php

<?php
// Fetch questions
$cuestionario   =   $con->Fetch("SELECT * FROM questions"); ?>

<form name="newDona" action="" method="post">
</table><?php
// Confirm there are questions being drawn from database
$numrows        =   (is_array($cuestionario))? count($cuestionario): 0;
if($numrows > 0) {
// Loop through questions
foreach($cuestionario as $row) { ?>
<tr>
<!-- Write the question -->
<td><?php echo $row["question"];?></td>
</tr>
<th>
<!-- Set the question id -->
<select name="answer[<?php echo $row['idquestion']; ?>][]">
<option value=""></option>
<option value="1">yes</option>
<option value="no">NO</option>
</select>
</th><?php<th><textarea type="text" name="comment" maxlength="50" cols="130" rows="5"/ ></textarea></th>} ?><tr>
<td colspan="5" align="center">
<input type="submit" name="send" id="send" value="SAVE" />
</td>
</tr>
</table>
</form>
<?php } ?>

0

Решение

Хорошо, теперь вопрос показывает поле комментария в цикле, сделайте то, что вы сделали с select.

<textarea type="text" name="comment[<?php echo $row['idquestion']; ?>]" maxlength="50" cols="130" rows="5"/ >

и собрать его в свой цикл с

$_POST["comment"][$questi]

В сторону: вы должны предотвратить внедрение SQL так как ваш код оставляет ваш сайт уязвимым для атак.

0

Другие решения

Вот рабочий пример:

<?php

echo '<form method="post">';
echo '<textarea name="comments[]" rows="8" cols="40"></textarea>';
echo '<textarea name="comments[]" rows="8" cols="40"></textarea>';
echo '<textarea name="comments[]" rows="8" cols="40"></textarea>';
echo '<button name="submit">Submit</button>';
echo '</form>';

if (isset($_POST['comments']))
{
var_dump($_POST['comments']);
}
0

По вопросам рекламы [email protected]