Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP] Scalanie komórek a'la Excel
Forum PHP.pl > Forum > Przedszkole
drawsko
Witam,

w wyniku zapytania mam tablę

ID | TEMAT_KONTROLI | MIASTO | TERMIN | KOMÓRKA

1 | sprawy kadrowe | opole | styczeń | wydz ogólny
2 | sprawy kadrowe | sopot | styczeń | wydz ogólny
3 | sprawy kadrowe | radom | kwiecień | wydz ogólny
4 | sprawy socjalne | toruń | czerwiec | wydz ogólny
5 | sprawy socjalne | plock | listopad | wydz ogólny
6 | sprawy socjalne | żagań | czerwiec | wydz ogólny
7 | zaległości brutto | sopot | wrzesień | oddział pierwszy
8 | zaległości brutto | opole | wrzesień | oddział pierwszy
9 | zaległości brutto | toruń | wrzesień | oddział pierwszy
10 | zaległości brutto | plock | listopad | oddział pierwszy
11 | zaległości brutto | radom | listopad | oddział pierwszy

a muszę prezentować wyniki z pogrupowanymi/scalonymi komórkami, najpierw w zakresie TEMATU_KONTROLI a następnie KOMÓRKI. Tj. zamiast trzy razy wyświetlać sprawy kadrowe wyślietlić raz i analogicznie wydz ogólny - też raz.

Jakieś pomysły jak to obsłużyć z poziomu MYSQL/PHP?
CuteOne
google -> mysql group by
drawsko
próbowałem już grupować po TEMAT_KONTROLI i moje wyniki są obcinane do 3 pozycji, potrzebuję mieć 11 pozycji.
Sephirus
Napisz jak to dokładnie miałoby wyglądać - utwórz taką tekstową tabelkę.
drawsko
zamiast spacji użyłem kreopek bo się na spacjach rozwalało

...|............................| opole | styczeń |..................... |
1 | sprawy kadrowe | sopot | styczeń | wydz ogólny |
...|............................|radom | kwiecień | .................. |
--------------------------------------------------------------------
...|...........................| toruń | czerwiec |.................... |
2 | sprawy socjalne | plock | listopad | wydz ogólny |
...|...........................| żagań | czerwiec | .................. |
--------------------------------------------------------------------
itd
klocu
Ja bym to zrobił trochę na leniwca.

1) Pierwsze zapytanie pobrałoby wszystkie tematy kontroli (DISTINCT) i przepisało do tabelki wynikowej
2) Drugie zapytanie pobrałoby dane zbiorczo i wrzucało do tej samej tabelki wynikowej tylko już do odpowiedniej grupy

koniec końców wyglądałoby to mniej więcej tak
Kod
array('sprawy_kadrowe' => array( kolejne rekordy ), 'sprawy_socjalne' => array( kolejne rekordy ), ... )


I na tej podstawie wygenerowałbym tabelkę html'em z zastosowaniem ROWSPAN i CSS.
Rowspan się uda bo wiesz ile rekordów siedzi w głębi takiej tabelki.
Może to trochę droga naokoło, ale z poziomu samej bazy danych drzewka nie uzyskasz, a do tego się sprowadza to co potrzebujesz.
drawsko
nie dodałem że wynik zapytania na 2012 rok daje mi 95 wyników i każdego roku będzie przybywać drugie tyle. Tylko ilość scalanych kolumn może być większa lub mniejsza.
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.