Muszę edytować jedną z tabel po facecie, który już nie współpracuje z naszą firmą i sprawa wydawała mi się na początku prosta, jednak nie mogę znaleźć rozwiązania.
Mam tabelę z 4 kolumnami: Data, Imię i nazwisko, Login i Punkty. W bazie danych zapisują się rekordy dodawanych punktów, z tym że każda akcja dodająca punkty tworzy nowy rekord w bazie, dajmy na to:
10.04.2021 | Jan Kowalski | kowal | 10
11.04.2021 | Jan Kowalski | kowal | 20
12.04.2021 | Jan Kowalski | kowal | 15
Poniższy skrypt działa, rozumiem też składnię, jest tu ustawiony limit wyświetlanych rekordów oraz dodana paginacja tabeli. Skrypt wyświetla wszystkie rekordy znajdujące się w bazie.
Problem tkwi w tym, że potrzebuję dokładnie to samo, tyle że z sumą punktów użytkownika, tak żeby dany user wyświetlał się tylko raz, a w kolumnie "Punkty" wyświetlała się suma wszystkich jego punktów.
Próbowałem przy pomocy funkcji array_sum(), ale ona wylicza mi wszystkie rekordy z bazy danych. Skrypt wygląda następująco:
<?php $login = $_GET['login']; $_SESSION["login"] = $login; include('Pagination.php'); include('konfiguracjabazy.php'); $limit = 200; $queryNum = $db->query("SELECT COUNT(*) as ID FROM db_bazaglowna"); $resultNum = $queryNum->fetch_assoc(); $rowCount = $resultNum['ID']; 'totalRows' => $rowCount, 'perPage' => $limit, 'link_func' => 'searchFilter' ); $pagination = new Pagination($pagConfig); $query = $db->query("SELECT * FROM db_bazaglowna LIMIT $limit"); if($query->num_rows > 0){ ?> <?php while($r = $query->fetch_assoc()){ } } ?>
Będę bardzo wdzięczny za pomoc i podpowiedzi.