Я смотрю, как сохранить результат после завершения теста CodeIgniter PHP - PullRequest
0 голосов
/ 21 марта 2019

Я постараюсь сделать это как можно более подробным, потому что я был отмечен ранее.За рамками codeigniter есть файл выбора викторины, после чего вы получите 1 из 5 тестов.Ниже приведена компьютерная викторина (все они одинаковы, кроме вопросов и ответов).Файлы ниже хранятся в папке просмотра.Файл Play Quiz используется для отображения всех вопросов и ответов.Он получает вопросы и ответы из базы данных с именем multi_login и из таблицы, называемой викторина.Когда пользователь выберет ответы и нажмет кнопку «Отправить», он запустит следующий блок кода, который был приведен ниже.Он использует массивы, чтобы проверить, является ли ответ правильным или неправильным; если он верный, то устанавливает зеленый цвет фона и добавляет 1 к баллу.Общая оценка затем отображается в нижней части теста, чтобы показать оценку пользователей.Я уже использовал файл модели папок внизу страницы, чтобы выбрать таблицу, которую я хочу "викторина".Я хочу иметь возможность сохранить номер счета после того, как пользователь завершил тестирование, чтобы сохранить его в таблице с именем report в столбце с именем Score.Пожалуйста, помогите, я использую phpmyadmin для своей базы данных и т.д. Я надеюсь, что это достаточно подробно, если не просто комментарий.

Код Play Quiz (для пояснения):

<h1>Play the Computing Quiz!</h1>

<form method="post" action="<?php echo base_url();?>index.php/Questions/resultdisplay">


<?php foreach($questions as $row) { ?>

<?php $ans_array = array($row->choice1, $row->choice2, $row->choice3, $row->answer);
shuffle($ans_array); ?>

<p><?=$row->question?></p>

<input type="radio" name="quizid<?=$row->quizID?>" value="<?=$ans_array[0]?>" required> <?=$ans_array[0]?><br>
<input type="radio" name="quizid<?=$row->quizID?>" value="<?=$ans_array[1]?>"> <?=$ans_array[1]?><br>
<input type="radio" name="quizid<?=$row->quizID?>" value="<?=$ans_array[2]?>"> <?=$ans_array[2]?><br>
<input type="radio" name="quizid<?=$row->quizID?>" value="<?=$ans_array[3]?>"> <?=$ans_array[3]?><br>


<?php } ?>

<br><br>
<input type="submit" value="Submit!">

</form>

После нажатия кнопки отправки пользователь отправит на эту страницу:

<h1>Play the Computing Quiz!</h1>

<?php $score =0; ?>

  <?php $array1= array(); ?>
  <?php $array2= array(); ?>    
  <?php $array3= array(); ?>
  <?php $array4= array(); ?>
  <?php $array5= array(); ?>
  <?php $array6= array(); ?>
  <?php $array7= array(); ?>
  <?php $array8= array(); ?>

     <?php foreach($checks as $checkans) { ?>
           <?php array_push($array1, $checkans); } ?>


    <?php foreach($results as $res) { ?>
           <?php array_push($array2, $res->answer); 
                 array_push($array3, $res->quizID); 
                 array_push($array4, $res->question); 
                 array_push($array5, $res->choice1); 
                 array_push($array6, $res->choice2); 
                 array_push($array7, $res->choice3); 
                 array_push($array8, $res->answer); 
           } ?>


       <?php 
           for ($x=0; $x <10; $x++) { ?>

<form method="post" action="<?php echo base_url();?>index.php/welcome/index">  


<p><?=$array4[$x]?></p>


  <?php if ($array2[$x]!=$array1[$x]) { ?>

       <p><span style="background-color: #FF9C9E"><?=$array1[$x]?></span></p>
       <p><span style="background-color: #ADFFB4"><?=$array2[$x]?></span></p>

  <?php } else { ?>

       <p><span style="background-color: #ADFFB4"><?=$array1[$x]?></span></p>

       <?php $score = $score + 1; ?>

<?php } } ?>

<br><br>

<p><b>Your Score: </b></p>
  <p><b><?=$score?>/10</b></p>

<input type="submit" value="Play Again!">

</form>

Файл модели:

class quizmodel extends CI_Model {

    public function getQuestions()
    {
        $this->db->select("quizID, question, choice1, choice2, choice3, answer, subject");
        $this->db->from("quiz");
        $this->db->where("subject",'computing');


        $query = $this->db->get();

        return $query->result();

        $num_data_returned = $query->num_rows;

        if ($num_data_returned < 1) {
          echo "There is no data in the database";
          exit();   
        }
    }
}

Выбор викторины

После выбора вычислительной викторины

викторины 1

изображение викторины 2

после нажатия кнопки Отправить

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...