Witam. Kolejny problem znalazłem w swoim projekcie i muszę się poradzić w sprawie stworzenia w miarę inteligentnego sposobu rozwiązania go. Zacznijmy od początku.
Wyobraźmy sobie dzień w takiej postaci:
Godzina / seans/ początek lub koniec.
1
2
3
4 seans1 start
5
6 seans1 koniec
7
8
9
10
11
12
13
14 seans2 start
15
16 seans2 koniec
17
18
19
20
21
22
23
24
czyli mamy dwa seanse:
pierwszy od godziny 4.00 do 6.00
drugi od godziny 14.00 do 16.00
Teraz dodajemy nowy seans. dane o początku i końcu przypisane to dwóch zmiennych, np. $datap (data rozpoczęcia) oraz $datak(data końca).
Zanim dodam nowy seans do bazy trzeba sprawdzić czy data rozpoczęcia i końca dodawanego seansu nie pokryje się z już istniejącymi seansami. Pytanie jak?
Wyciągam z bazy danych seanse na konkretnej sali i konkretnej dacie. Jeśli obliczę ile rekordów zwróciło zapytanie przy użyciu mysql_num_rows mogę sprawdzić jedną rzecz - czy w danym dniu już jest jakiś seans. Jeśli wynik będzie 0 - znaczy że seansów nie ma i można dodać seans o dowolnej godzinie i nie ma problemu.
Ale jeśli są już inne seanse to pojawia się problem. Myślałem żeby porównać datę rozpoczęcia nowego seansu ($datap) z datą zakończenia seansu z bazy (koniec). Niby ok ale gdy wpiszę (odnoszę się teraz to przykładów powyżej) - godzinę rozpoczęcia seansu 10.00 to warunek się sprawdzi dla pierwszego seansu (seans się kończy o 6.00 więc datap> od koniec seans1) ale dla drugiego już nie. Brakuje mi koncepcji jak podejść do tego problemu. Czy ktoś ma jakiś pomysł na rozwiązanie problemu? Wolałbym uniknąć ręcznego sprawdzania w bazie danych wolnych terminów. Wolałbym żeby serwer "myślał" za mnie.