Как отключить двойные вопросы, чтобы показать второй «Vraag 1» (вопрос 1 на английском языке) - PullRequest
0 голосов
/ 02 октября 2019

У меня есть ответы на вопросы в базе данных, и когда я их показываю, он показывает вопрос и количество раз, когда был выбран выбор. Дело в том, что я хочу сгруппировать варианты по вопросам, чтобы у меня не было одного и того же вопроса 4 раза, когда есть 4 варианта. Я думаю, что это связано с тем, как я их повторяю, но я не мог придумать, как это исправить.

Я попытался немного изменить эхо, но безуспешно.

$Yeet = "SELECT count(answer_id) FROM survey_answers";
$Yeetres = mysqli_query($conn, $Yeet);
if ($Yeetres ->num_rows > 0) {
  while ($row = mysqli_fetch_array($Yeetres)) {

        $aantal = $row['count(answer_id)'];
        for ($meme = 1; $meme <= $aantal; $meme++) {
        $countAnswerQuery = "SELECT answer_id, COUNT(*), question_id  FROM survey_answers WHERE question_id = '$meme' GROUP BY answer_id ORDER BY question_id ASC";
        $countanswerresult = mysqli_query($conn, $countAnswerQuery);
        if ($countanswerresult ->num_rows > 0) {
          while ($row = mysqli_fetch_array($countanswerresult)) {

            $question = $row['question_id'];
            $answer = $row['answer_id'];
            $count = $row['COUNT(*)'];

            $value = "SELECT answer_id, answer FROM survey_question_answers";
            $valueresult = mysqli_query($conn, $value);
            if ($valueresult ->num_rows > 0) {
              while ($row = mysqli_fetch_array($valueresult)) {
                $answervalue = $row['answer_id'];
                $echt = $row['answer'];
          //changes the answer ( that atm is a number ) to its actual value
                if($answervalue == $answer){
                  $answer = $echt;            

                  echo "Vraag " . $question. "<br>";
                  echo "Keuze: <b>". $answer . "</b> is " .$count ." keer ingevuld ";

                  echo "<form method='POST'><input type='hidden' name='id' value='$question'>";
                  echo '<input type="submit" name="submit" value="Show answer" class="btn btn-primary mb-3 mt-3"></form><br><br> ';

                }
              }
            }
          }
        }
      }
    } 
  } 

Я надеюсь, что у меня будет возможность сгруппировать вопросы и варианты. Это то, что в настоящее время отражено:

currentPage

И это база данных:

data

1 Ответ

1 голос
/ 02 октября 2019

Вы можете проверить внутри своей итерации, совпадает ли текущий вопрос с предыдущим. Если они не совпадают, то повторяйте фактический вопрос. Как сказал @ 04FS. Используйте этот вопрос в качестве контрольного разрыва.

Упрощенный код:

$_prevQuestion = null; $_currQuestion = null;
    while ($row = mysqli_fetch_array($valueresult)) {

        $_currQuestion = $question;

        ...

        if($answervalue == $answer){

           ...

          // check if new question or not, if so, echo the question
          if ($_currQuestion !== $_prevQuestion) {
            echo "Vraag " . $question. "<br>";
          }
          echo "Keuze: <b>". $answer . "</b> is " .$count ." keer ingevuld ";

          ...

        }

        $_prevQuestion = $question;
      }
...