Как отправить выбранные ответы один за другим из переключателей - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу отправить ответы, указанные в переключателях, один за другим в моей базе данных, но я не знаю как.Я попробовал кое-что, но безуспешно.

Это для опроса, и поэтому я хочу сохранить ответы на вопрос один за другим.Вопрос о коде - это цикл for в коде.

Я пытался изменить свой Sql-запрос, но это не помогло

    <form method="POST">
    <?php
        include '../include/db_conn.php';
            $url = $_GET['surveyUrl'];
            $sqlGetSurvey = 'SELECT * FROM `survey_info` WHERE `survey_url`="'. $url .'"';
            $resultGetSurvey = mysqli_query($conn, $sqlGetSurvey);

            if ($resultGetSurvey ->num_rows > 0) {
                while ($row = $resultGetSurvey-> fetch_assoc()) {
                    $surveyId = $row['survey_id'];
                    $sqlGetQuestion = 'SELECT * FROM `survey_questions` WHERE `survey_id`="'. $surveyId .'"';
                    $sqlGetSurvey = 'SELECT * FROM `survey_info` WHERE `survey_id`="'. $surveyId .'"';
                    $resultGetQuestion = mysqli_query($conn, $sqlGetQuestion);
                    $resultGetSurvey = mysqli_query($conn, $sqlGetSurvey);
                    if ($row = mysqli_fetch_assoc($resultGetSurvey)) {
                        $text_color = $row['survey_text_color'];
                        $background_color = $row['survey_background_color'];
                        $theme_color = $row['survey_theme_color'];
                    }
                    if ($resultGetQuestion ->num_rows > 0) {
                        while ($row = $resultGetQuestion-> fetch_assoc()) {
                            $questionId = $row['question_id'];
                            $count = 'A';


                            $yuyu = "<ul  class='list-group mx-auto mt-3'>
                            <li class='list-group-item'>". $row['question'] ."</li>";

                            $sqlGetAnswers = 'SELECT * FROM `survey_question_answers` WHERE `question_id`='. $questionId .'';
                            $resultGetAnswers = mysqli_query($conn, $sqlGetAnswers);

                            if ($resultGetAnswers ->num_rows > 0) {
                                while ($row = $resultGetAnswers-> fetch_assoc()) {
                                    $yuyu .= "<li class='list-group-item'><span class='badge badge-light main-color-bg'>". $count .". <input type='radio' name='$questionId' value='$count'></span> ". $row['answer'] ."</li>";

                                    ++$count;

                                }
                            }
                            echo '</ul>';
                            echo $yuyu;
                        }
                    }
                }
            }


            if(isset($_POST['submit']))
            {

            for($x= 1; $x <= $questionId; $x++){
                $antwoord = $_POST[$questionId];
                $sql = "INSERT INTO survey_answers (question_id, survey_id, answers) VALUES ('$questionId', '$surveyId', '$antwoord')";
            }
        }


    ?>
        <input type="submit" name="submit" value="Show answer" class="btn btn-primary mb-3 mt-3">
</form>

Я надеюсь, что он вставляет один за другим в мою базу данных

1 Ответ

1 голос
/ 27 сентября 2019

Вам необходимо выполнить запрос вставки

if (isset($_POST['submit'])) {
    for ($x = 1; $x <= $questionId; $x++) {
        if (isset($_POST[$x])) {//maybe you need to check if the question exists
            $antwoord = $_POST[$x];
            $sql = "INSERT INTO survey_answers (question_id, survey_id, answers) VALUES ('$questionId', '$surveyId', '$antwoord')";
            if ($conn->query($sql) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql . "<br>" . $conn->error;
            }
        }
    }
}
...