![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam pewien problem i nie wiem jak go rozwiklać. Mam dwie tabele ZADANIA i WYKONANE_ZADANIA przeszukuje sobie w bazie czy zadanie na jednej z trzech zmian w danym dniu było już wykonane jeżeli nie to wyświetla je a jak było wykonane to juz go nie wyświetli. Problem polega na tym że w każdym dniu dwa razy występuje 3 zmiana ( od 0:00 do 7:00 i od 23:00 do 23:59 ) i nie wiem jak rozdzielic te 2 trzecie zmiany.
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 578 Pomógł: 69 Dołączył: 15.04.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Łoł, stary nie wiem czy tyle wypiłem, czy na trzeźwo też nie da się ciebie zrozumieć, ale proszę: napisz to co chciałeś powiedzieć jeszcze raz ze znakami interpunkcyjnymi z orzeczeniami.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dwie tabele:
Tabela A : ZADANIA Tabela B : WYKONANE_ZADANIA $zmiana1 : 6:00 - 14:00 $zmiana2 : 14:00 - 22:00 $zmiana3 : 22:00 - 6:00 Sprawdzam czy zadanie z Tabeli A z numerem ID widnieje w dzisiejszym dniu na danej $zmianie w Tabeli B, jeżeli nie to wyświetla je. W tym problem że $zmiana3 występuje w pomiędzy 22:00 a 6:00 czyli sa dwie daty i nie wiem jak to ominąć ? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
To jest w bazie danych?Jak tak to zainteresuj się warunkiem between.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak to jest w bazie. Czy mógłbyś mnie troche nakierowac bo nie wiem jak miałaby wyglądać konstrukcja takiego zapytania
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 14 Dołączył: 25.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie do końca rozumiem, o co chodzi, ALE...
Być może po prostu uznaj, że jeśli zmiana trzecia pracuje od 22.00 11 grudnia do 6.00 12 grudnia, to cały czas mamy 11 grudnia i zadania przypisz do wykonania 11 grudnia? W zmiennej $today ustaw dzisiejszą datę. Jeśli jest jeszcze przed 6 rano, to od dzisiejszej daty odejmij jeden dzień, dzięku czemu otrzymasz datę z poprzedniego dnia.
A następnie wyszukaj zadania w tabeli. Ten post edytował lukesh 11.12.2011, 00:22:50 -------------------- Edumemo.pl - Nauka Języków Obcych
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
To będzie coś na ten wzór:
ale w ogóle ciężko cokolwiek dla Ciebie sklicić,musiałbyś podać dokładną strukturę swoich tabel. Ten post edytował Niktoś 11.12.2011, 00:35:38 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzięki takie coś powinno zadziałać
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 14 Dołączył: 25.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
To będzie coś na ten wzór:
ale w ogóle ciężko cokolwiek dla Ciebie sklicić,musiałbyś podać dokładną strukturę swoich tabel. To rozwiązanie chyba za bardzo nie pasuje... W tabeli jest pole DATE, dlatego nie będzie można wyszukać po godzinie. Jak napisałem wcześniej - wystarczy określić, jaki mamy dzień, a konkretniej, w jakim dniu pracę rozpoczęła dana zmiana. I do tego dnia powinny być też zapisane zadania. Wydaje mi się równiez, że kolumna "kiedy" powinna być w tabeli "zadania". -------------------- Edumemo.pl - Nauka Języków Obcych
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Nie za bardzo wiem co chcesz konkretnie wyciągnąć z tabeli tak więc wyciągne tobie większość przydatnych informacji:
Niewiem czy format daty zgadza się z tym z sql'a-mógłbyś jescze podać jak Tobie się data zapisuje w sql? Ech, późno już raczej będę leciał do łóżka:) Myślę że da rady to zrobić sql'em. Ten post edytował Niktoś 11.12.2011, 01:08:06 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Widać mam jeszcze spore braki bo nie umię sobie w tym poradzić :/
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Tak wskrócie:
p -ta literaka to jest jedna tabelka d-ta literka to jest druga tabelka Te literki przypisujesz do różnych tabel ,ot tak: zadania p INNER JOIN wykonane_zadania d Inner join złacza ze sobą tabeli teraz twoja tabelka zadania będzie nazywała się p, tabelka wykonane_zadania będzie nazywała się d do kolumn teraz odwołujesz się poprzez literki: SELECT p.Zadanie,p.op_zadania,d.kto,d.zmiana p.Zadanie-to kolumna Zadanie z tabeli zadania - patrz na literke p. d.kto-to kolumna kto z tabelki wykonane_zadania -patrz na literke d. Aby odwołać się do kolumn z różnych tabel używamy innej literki. Taki mini tutorialik. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 6.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
wielkie dzieki za cierpliwość
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 09:20 |