Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zliczanie danych z trzech pól
Forum PHP.pl > Forum > Bazy danych > MySQL
kilab
Witam, na początku napiszę co chcę osiągnąć.
Mam w tabeli 'student' kilka pól opisujących daną osobę (imię, nazwisko, wiek, ...), z których teraz najważniejsze jest to, które opisuje szkoły do jakich dana osoba chodziła. Podobnie sprawa ma się do naszj-klasy. Chcę zliczyć ilość wystąpień danej szkoły i wyświetlić ranking szkół, do której chodziło najwięcej osób. Gdyby było jedno pole, użyłbym COUNT i bym zliczył, jednak każda osoba może dopisać kilka szkół, stworzyłem więc 3 pola - 'szkoła1', 'szkoła2', 'szkoła3'. Użyłem COUNT i UNION, byłoby dobrze gdyby jednak rekordy powtarzające się we wszystkich polach były dodawane do siebie i wyświetlana suma z trzech pól, a nie dla każdego oddzielnie. Tutaj utknąłem. Pomyślałem teraz, że może lepszym rozwiązaniem będzie utworzenie kolejnej tabeli 'szkoły', a w niej 'id', 'id_studenta', 'nazwa_szkoły' i dalej kombinować. I pytanie do was, które rozwiązanie będzie lepsze? Może jest jeszcze inny sposób na to? Jak zliczyć ilość wystąpień danej szkoły?
Piszę to w tym dziale ponieważ chciałbym przy tym pobraniu ilości uniknąć maksymalnie kodu PHP i jeśli możliwe wykonać jednym zapytaniem do bazy.
nospor
zmien strukture na:
SZKOLA
-id
-nazwa
-....

STUDENT
-id
-imie
-nazwisko
-....

SZKOLA_STUDENT
-id_student
-id_szkola
-rok
-....

Mając taką strukturę łatwo i szybko wszystko załatwisz
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.