[PHP] Suma punktów użytkownika |
[PHP] Suma punktów użytkownika |
19.04.2021, 22:58:16
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.04.2021 Ostrzeżenie: (0%) |
Cześć. Jestem mocno początkujący jeśli chodzi o PHP i nie jest to moja bajka, siedzę raczej we front endzie i mam sporą zagwostkę.
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:
Będę bardzo wdzięczny za pomoc i podpowiedzi. Ten post edytował Galen 19.04.2021, 23:06:45 |
|
|
20.04.2021, 07:56:55
Post
#2
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
Jeżeli tylko tyle jest kolumn, to zrób: SUM(Ilosc_Punktów) i pogrupować GROUP BY (Imie_I_Nazwisko), ale bez konkretnego, unikatowego id użytkownika, możesz pogrupować 2 różnych użytkowników o takim samym imieniu i nazwisku.
|
|
|
20.04.2021, 13:22:00
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.04.2021 Ostrzeżenie: (0%) |
Unikatowy w tym przypadku jest Login, ID użytkowników (i te same przypisane loginy) znajdują się w innej bazie, zdaje sobie sprawę, że można by było to tak zrobić, ale czuję że byłoby to zbyt skomplikowane jak na moje możliwości.
Tylko cały czas coś jest nie tak, poniższa zmiana w kodzie nie działa. Wypluwa tylko nagłówki tabeli.
|
|
|
20.04.2021, 13:31:21
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Bo nie możesz sobie tak po prostu wstrzelić słowa kluczowe w zapytanie gdzie akurat masz ochotę tylko ma to być zgodnie ze składnią mysql: https://dev.mysql.com/doc/refman/8.0/en/select.html
-------------------- |
|
|
20.04.2021, 13:57:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.04.2021 Ostrzeżenie: (0%) |
|
|
|
20.04.2021, 14:02:06
Post
#6
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 52 Dołączył: 18.02.2008 Ostrzeżenie: (0%) |
Kod SELECT *, SUM(Ilosc_Punktow) AS punkty FROM db_bazaglowna GROUP BY (Imie_I_Nazwisko) LIMIT $limit edit: sql group by Ten post edytował gino 20.04.2021, 14:03:59 |
|
|
20.04.2021, 14:08:49
Post
#7
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.04.2021 Ostrzeżenie: (0%) |
Wciąż nic, tylko same nagłówki się pojawiają.
|
|
|
20.04.2021, 14:52:04
Post
#8
|
|
Grupa: Moderatorzy Postów: 36 440 Pomógł: 6290 Dołączył: 27.12.2004 |
Bo masz blad bazy. Wyswietl go sobie to zobaczysz co masz zle
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.04.2021, 16:12:49
Post
#9
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 19.04.2021 Ostrzeżenie: (0%) |
Miałeś rację, trochę się z tym pomęczyłem i faktycznie, zamiast "AS Punkty" zadziałało "AS Ilosc_Punktow". Skrypt działa w poniższej formie .
Dodałem sobie jeszcze ORDER BY i "ranking" gotowy. Dziękuję Wam wszystkim za pomoc, to była ciężka przeprawa i pierwsze kroki w PHP, sam bym sobie nie poradził . Ten post edytował Galen 20.04.2021, 16:13:55 |
|
|
Wersja Lo-Fi | Aktualny czas: 29.03.2024 - 01:07 |