Подсчитайте количество правильных ответов в базе данных - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь посчитать правильные ответы в базе данных.У меня есть следующие строки кода:

$getresult = $quizAns->getAnswersByUser($_POST['user_id']); 

if($getresult){

$count = count($getresult);

for ($x = 1; $x <= $count; $x++) {

      $match = $quiz->matchAnswer($getresult[$x]->question_id, $getresult[$x]->ans_id);

  }

}

$counts = count($match);

В $getresult я получаю количество ответов, отправленных пользователем, которое должно быть 4 всегда так:

   Array
(
    [0] => stdClass Object
        (
            [id] => 220
            [user_id] => 84
            [question_id] => 43
            [answer_id] => 31
        )

[1] => stdClass Object
    (
        [id] => 219
        [user_id] => 84
        [question_id] => 48
        [answer_id] => 53
    )

[2] => stdClass Object
    (
        [id] => 218
        [user_id] => 84
        [question_id] => 49
        [answer_id] => 56
    )

[3] => stdClass Object
    (
        [id] => 217
        [user_id] => 84
        [question_id] => 50
        [answer_id] => 62
    )

)

Я хочу просмотреть все индексы и посчитать количество подходящих ответов.Но, если я пытаюсь отладить $counts, я получаю только 1.Я ожидаю иметь 4 или 3, но не один только.Follwing код для ответа на функцию соответствия:

public function matchAnswer($question_id, $ans_id){

    $args = array(

            'where' => array(

            'id'    => $question_id,
            'ans_id' => $ans_id

        )

    );

    return $this->select($args);

}

А вот функция для getAnswersByUser:

public function getAnswersByUser($id, $is_die = false){

    $args = array(

        'where' => array(

            'user_id' => $id

            )


        );

        return $this->select($args);

}

1 Ответ

1 голос
/ 16 марта 2019

Замените это на

$getresult = $quizAns->getAnswersByUser($_POST['user_id']); 

if($getresult){

$count = count($getresult);

for ($x = 1; $x <= $count; $x++) {

  $match = $quiz->matchAnswer($getresult[$x]->question_id,$getresult[$x]->ans_id);

}

}

$counts = count($match);

на

$getresult = $quizAns->getAnswersByUser($_POST['user_id']); 
$counts = 0;
if($getresult){
    $count = count($getresult);
    for ($x = 0; $x < $count; $x++) {
        $match = $quiz->matchAnswer($getresult[$x]->question_id, $getresult[$x]->ans_id);
        if($match){
           $counts += 1;
        }
    }
}
    $counts = count($match);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...