![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 3 Dołączył: 28.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam tabelę Nieobecności w MySql:
IDNieobecnosci(int), Data(date), Kto (int) Pracownicy mogą zaznaczać, kiedy będą nieobecni. Oczywiście można zaznaczyć więcej niż jeden dzień, np 2017-08-09 do 2017-08-20. Do bazy wstawia następująco
Chciałbym ominąć generowanie tego całego ciągu przez PHP, bo musiałbym wtedy porównywać daty, albo liczyć różnicę dni. W związku z tym pytanie: czy można tę pracę przerzucić na SQL? I jeśli tak, to w jaki sposób? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej jest robić przedziały? W sensie do BD zapisujesz przedziały od-do i to sobie potem obrabiać.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 3 Dołączył: 28.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Myślałem o tym. Gorzej z obróbką do wyświetlenia. Ma być coś takiego:
Kod ----------KALENDARZ---------- | | | |1 |2 |3 |4 | | | | | | | | | ----------------------------- |5 |6 |7 |8 |9 |10 |11 | | | | | | |C |C | ----------------------------- |12 |13 |14 |15 |16 |17 |18 | |B |B |A,B|A,B|A |A |A | ----------------------------- |19 |20 |21 |22 |23 |24 |25 | |A |A | |C | | | | ----------------------------- |26 |27 |28 |29 |30 |31 | | | | | |C | | | | ----------------------------- Pod każdą datą ma być imię pracownika, który w ten dzień jest nieobecny. Jeszcze jak do tego dodamy, że urlopy różnych osób mogą się nakładać, to robi się ciężko. Skorzystałem z http://nospor.pl/grupowanie-wynikow.html i całkiem fajnie działa. Nie mam pojęcia jak trzeba by obrabiać przedziały. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ale jaki problem? Pobierasz zakres dat i w pętli sprawdzasz tylko czy data zawiera się w pobranym przedziale. Ja tam nie widzę problemu
![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 17:59 |