Mam mały problem i nie wiem co mam zmienić.
Ogólnie tworzę sobie stronę do rozwiązywania testów. Gdy użytkownik wyśle test, chce żeby automatycznie zliczyło mu punkty z odpowiedniego testu.
W tabeli w BD test_answers mam id, user_id, question_id, test_id, select_answer, points.
W pierwszej kolejności pobieram testy, które zostały wypełnione przez danego użytkownika:
$select_solved_test = $pdo -> query("SELECT * FROM test_solved WHERE user_id = '". $user['id'] ."'") -> fetchAll();
Następnie pobieram te testy i pobieram ID odpowiedniego testu, po czym pobieram wybrane odpowiedzi w danym teście przez użytkownika.
foreach( $select_solved_test as $solved_test )
{
$test_id = $solved_test['test_id']; // pobrane ID testu
$select_answers = $pdo -> query("SELECT * FROM test_answers WHERE test_id = '". $test_id ."' AND user_id = '". $user['id'] ."' ORDER BY id") -> fetchAll();
foreach($select_answers as $answers)
{
$points += $answers['points'];
}
}
W ostatnim etapie chce zliczyć punkty konkretnego testu. I tutaj się pojawia pytanie, co musze poprawić, żeby poprawnie zliczać punkty danego testu? Bo aktualnie zlicza poprawnie punkty z pierwszego testu, ale z drugiego i kolejnego dodaje punkty z poprzednich testów.