![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 11 Dołączył: 25.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Stworzyłem sobie tabele, jak nizej, i teraz w tabeli kazde zadanie ma jakis czas dzien/od/do/powtarzalnosc, staram sie zrobic wystetlanie tych zdazen, ale jak np. wybrac tylko te ktore sa w poniedzialek. Samo zapytanie to SELECT * FROM schedule WHERE visible = True AND stop_date > '$date' ORDER BY date DESC Ale jak utworzyc cos w stylu (2). Chcial bym aby rozwiazanie bylo bardziej wyrafinowane, niz 7 if'ow z opcja date(l) (male "L") dla wartosci z bazy
2. Poniedzialek ---------------------------- 08:00 - 12:00 Zadanie 1 16:00 - 20:00 Zadanie 2 Wtorek ---------------------------- 18:00 - 22:00 Zadanie 3 22:00 - 00:00 Zadanie 4 Sroda ---------------------------- 02:00 - 06:00 Zadanie 5 18:00 - 23:00 Zadanie 6 Ten post edytował bercow 22.04.2011, 00:27:18 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wbudowane WEEKDAY( start_date ) nie będzie wystarczająco wyrafinowane?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 11 Dołączył: 25.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Natchnąłeś mnie do trochę innego rozwiązania. Ale nie rozumiem, dlaczego dla dzisiaj podaje mi 4 dzień tygodnia, jeżeli poniedziałek jest pierwszy (a nie jest) to mając dziś piatek, piątek jest piątym dniem, opierajac sie na ISO 8601, pierwszym dniem jest nadziela, wiec dzisiaj jest 6 dzień.
Zrobiłem to tak, ponieważ dzisiaj jest 4 dzien, dodaje jeden i mam 5, a wiec piatek, ale jak pokaze pierwszy dzien, to sie wysypie. Jakis pomysł, dlaczego pokazuje dzisiaj 4 dzień tygodnia. Przykład dla dziś.
Ten post edytował bercow 22.04.2011, 18:58:20 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Date jako drugi parametr wymaga inta, a ty mu dajesz inta, ale powstałego z dodania 1 do stringa, a php robi z tego 2012. Więc zamiast timestampa dostaje liczbę 2012, co jest jakąś tam bardzo starą datą.
Ten post edytował pmir13 22.04.2011, 19:11:18 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 156 Pomógł: 11 Dołączył: 25.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
Czyli taka magia, ale teraz zastanawiam się, jak wybrać dane z bazy i je ładnie podzielić, na te dni. Mam dzień tygodnia, ale, teraz if ... elseif ... i tak siedem razy, to słabe wyjście.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 282 Pomógł: 89 Dołączył: 12.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Zakładając, że pobierasz dane posortowane wg daty:
Taki ogólnie schemat, pod te niby-funkcje podstaw własny kod. Problem byłby gdyby dwa sąsiadujące datą zadania byłyby np w sobotę i następną sobotę, wtedy mógłbyś np w zapytaniu dodać
w linii 5 porównywać czy zmieniła się liczba uplynelo_dni, a nazwę dnia brać z $day[ ($numer_dnia_start + $uplynelo_dni) % 7 ] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 21:26 |