Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP] Scalanie komórek a'la Excel
drawsko
post 13.08.2012, 12:23:48
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 28.03.2008

Ostrzeżenie: (0%)
-----


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?

Ten post edytował drawsko 13.08.2012, 12:24:30
Go to the top of the page
+Quote Post
CuteOne
post 13.08.2012, 12:36:54
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


google -> mysql group by
Go to the top of the page
+Quote Post
drawsko
post 13.08.2012, 13:04:13
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 28.03.2008

Ostrzeżenie: (0%)
-----


próbowałem już grupować po TEMAT_KONTROLI i moje wyniki są obcinane do 3 pozycji, potrzebuję mieć 11 pozycji.

Ten post edytował drawsko 13.08.2012, 13:09:46
Go to the top of the page
+Quote Post
Sephirus
post 13.08.2012, 13:09:29
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Napisz jak to dokładnie miałoby wyglądać - utwórz taką tekstową tabelkę.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
drawsko
post 13.08.2012, 13:24:55
Post #5





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 28.03.2008

Ostrzeżenie: (0%)
-----


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

Ten post edytował drawsko 13.08.2012, 13:27:44
Go to the top of the page
+Quote Post
klocu
post 13.08.2012, 13:25:47
Post #6





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
drawsko
post 13.08.2012, 13:37:41
Post #7





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 28.03.2008

Ostrzeżenie: (0%)
-----


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.

Ten post edytował drawsko 13.08.2012, 13:42:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 15:18