![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 6.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, zamierzam napisać skrypt rezerwacji terminów z takimi funkcjami jak:
1)wybranie miesiąca/dnia i zatwierdzenie 2)wypisanie wolnych godzin w formularzu 3)wybranie ile ma trwać rezerwacja, 4)sprawdzenie czy nie koliduje z innymi rezerwacjami oraz uwzględnienie tego aby pomiędzy każdą rezerwacją było 20 minut na przygotowanie się i 20 minut po rezerwacji na posprzątanie. Jak mam rozwiązać takie coś? Ten post edytował hiszpaniec 26.05.2010, 13:56:49 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
hej możesz to zrobić np. tak:
tabela: course_id | course_date | start_time | end_time | reserved_end_time (end_time + 20min) a w niej data, godzina rozpoczęcia, godzina zakończenia i godzina zakończenia +20min ( bo w tym czasie inny termin nie może się zacząć) i teraz przy próbie dodania nowego terminu trzeba uwzględnić 3 przypadki: 1. Czas startu nowego terminu nie może znajdować się między startem a zarezerwowanym końcem innego terminu 2. Zarezerwowany koniec(czyli koniec +20min) nowego terminu nie może znajdować się między startem a zarezerwowanym końcem innego terminu 3. nowy termin nie może zaczynać się i kończyć w czasie innego terminu czyli, sprawdzasz czy któryś z tych przypadków jest spełniony dla wybranej daty, jeżeli poniższe zapytanie zwróci wartość większą niż 0, to znaczy że ten termin kolidowałby z innym:
oczywiście warto by jeszcze dodać jakiś kalendarzyk z zamalowanymi zajętymi terminami dla zwiększenia usablity |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 6.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki za pomoc, jednakże w 1 warunku trzeba było dodać >= oraz <= .
$distance to odstęp między masażami pobierany z bazy danych, endTime i startTime to czasy już zarezerwowanych terminów $massageLength+$x+$distance to długość masażu który wybraliśmy + $x (to jest wygenerowana w pętli godzina poprzez mktime od godziny otwarcia do zamknięcia) zaś cała pętla iterująca $x:
tak aby wyświetlały się tylko godziny do zamknięcia - długość masażu. Piszę, bo może się komuś przydać i jeszcze raz dzięki za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 08:37 |