Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Harmonogram zadań
Forum PHP.pl > Forum > Przedszkole
davsi79
Próbuję zrobić harmonogram zadań. Jestem początkujący także proszę o wyrozumiałość.
Mam dwie tabele. Pierwsza tabela zawiera zadania jakie trzeba wykonań na określonej zmianie ( są trzy zmiany ) i druga tabela która zawiera wykonane zadania. Mój problem polega na tym że nie wiem jak zrobić aby pokazywało z bazy jakie zadania sa jeszcze do wykonania, a jeżeli zadanie jest już wykonane to żeby juz nie było pokazane. Nie wiem czy dobrze to przedstawiłem, ale proszę o jakieś wskazówki. Z góry dziękuje i pozdrawiam
buliq
Z tego co rozumiem to w drugiej tabeli masz kopię tego co w pierwszej, tylko ze statusem wykonane tak?

  1. NOT IN


Pokaż strukturę bazy na wszelki wypadek
davsi79
Pierwsza tabela:

Zadania: id_zadania | zadanie | opis_zadania | jakazmiana

druga tabela:

Wykonane zadania: id_wyk_zadania | id_zadania | kto | kiedy

Oczywiście proszę o wyrozumiałość i jakies sugestie.
celbarowicz
Potrzebna jest tabela KTO. Z drugiej tabeli można chyba zrezygnować, dopisując do pierwszej id ktosia wykonującego zadanie oraz czas wykonania.
Jeśli w drugiej tabeli umieścisz id ktosia lub czas wykonania to będzie oznaczało, że zadanie zostało wykonane.
buliq
Tak jak napisał celbarowicz, powinieneś połączyć te tabele w jedną: id_zadania | zadanie | opis_zadania | jakazmiana | kto | kiedy .
Dla pola kto domyślnie ustawiasz 0 lub null (w zależności od typu pola). Następnie wybierasz niewykonane zadania sprawdzając jaką wartość ma pole kto.
Aby wybrać niewykonane:
  1. SELECT * FROM zadania WHERE kto = '0'


@down faktycznie o to chodziło
celbarowicz
"Dla tabeli kto domyślnie ustawiasz 0 lub null" . Zapewne miałeś na myśli kolumnę kto w pierwszej tabeli. W drugiej tabeli w zasadzie nic nie trzeba wpisywać.
davsi79
Odgrzewam troche temat. Dwie tabele:

  1. CREATE TABLE `wykonane_zadania` `id_wyk_zadania` int(20) NOT NULL AUTO_INCREMENT, `id_zadania` int(20) NOT NULL, `kto` varchar(60) COLLATE utf8_unicode_ci NOT NULL, `kiedy` date NOT NULL, PRIMARY KEY (`id_wyk_zadania`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=2 ;




  1. CREATE TABLE `zadania` `id_zadania` int(20) NOT NULL AUTO_INCREMENT, `zadanie` varchar(60) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `op_zadania` varchar(100) CHARACTER SET utf8 COLLATE utf8_polish_ci NOT NULL, `zmiana` tinyint(2) NOT NULL, PRIMARY KEY (`id_zadania`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ;


Próbuje wyświetlic zadania które musze jeszcze wykonać na zmianie z tabeli "zadania" których nie ma w tabeli "wykonane_zadania" na aktualnej zmianie w dniu dzisiejszym. Nie wiem czy to dobrze wytłumaczyłem. Próbowałem tak ale nie działa :

  1. SELECT DISTINCT zadania.id_zadania, wykonane_zadannia.id_zadania FROM (zadania LEFT OUTER JOIN wykonane_zadania ON zadania.id_zadania = wykonane_zadannia.id_zadania) WHERE wykonane_zadannia.id_zadania IS NULL;


Może ktoś pomoże ?
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.