Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: maly projekt bazy danych - dla zaawansowanych
Forum PHP.pl > Forum > PHP
yogitubadzin
mamy projekt w stylu szkoła tańca itp.
ciekawe czy ktos z was umie cos takiego

jak napisac skrypt ktory bedzie sprawdzal czy kolejna tworzona grupa kursu tanca nie pokrywa sie w dniu tygodnia, dowolnej i dowolnie trwajacej godzinie i sali

ilość godzin kursu w tygodniu dowolna

ja wymiękłem..
tehaha
no a nie możesz po prostu w tabeli zapisać dnia tygodnia , godziny rozpoczęcia i godziny zakończenia? czyli np. PN | 13:00 | 14:30 , a potem jak będziesz dodawał to sprawdzasz czy godzina startu lub godzina zakończenia nie znajduje się w przedziale który już jest w bazie, bo nowo dodany kurs nie może ani zaczynać się pomiędzy startem a końcem innego kursu ani nie może się też kończyć pomiędzy startem a końcem innego kursu dla tego samego dnia tygodnia
czyli np.
robisz tabelę
course_id | course_day | course_start | course_end
np. 2| PN | 1430 | 1545

  1. SELECT course_id FROM courses WHERE course_day = $new_couse_day AND ( ($new_course_start > course_start AND $new_course_start < course_end) OR ($new_course_end > course_start AND $new_course_end < course_end) OR( $new_course_start < course_start AND $new_course_end > course_end) )


ja przynajmniej tak bym do tego podszedł, jeżeli zapytanie zwróci wynik inny niż zero to znaczy że przedział jest zajęty, najlepiej jakbyś oparł to o jakiś generowany kalendarz z podświetleniem zajętych godzin dla zwiększenia usability

//edit właściwie trzeba uwzględnić jeszcze jedną sytuację czy kurs nie zaczyna się przed i kończy po jakimś istniejącym kursie, kod poprawiony
yogitubadzin
o to wlasnie mi chodzilo, dzieki!
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.