W tabeli mam takie wartośći:
hour - decimal (O której zaczyna się dana akcja)
time_treatments - decimal (Ile minut będzie trwała)
Wiadomo z formularza wprowadzam podobne wartości czyli początek i czas trwania
Mam takie coś:
$sql = 'SELECT *, (hour+time_treatments) as time_z FROM events WHERE event_date = "'.$day.'" { // $hour = 8.00 // $row['hour'] = 8.30 // $row['time_z'] = 8.50 // $suma2 = 9.30 if ( ($hour >= (float) $row['hour']) && ($hour <= (float) $row['time_z']) && ($suma2 >= (float) $row['hour']) && ($suma2 <= (float) $row['time_z']) ) { } }
W komentarzach przykładowe wartości.
Wynika z tego że jeżeli to co wprowadzimy pokrywa się z przedziałem 8.30 - 8.50 (ten z bazy) w tym wypadku wprowadzam 8.00 - 9.30 to powinien wyrzucić błąd. Niestety mój warunek nie działa za dobrze, a nie mam już pomysłu.
Pozdrawiam
Z góry dziękuje.
Poradziłem już sobie, dla potomnych:
Zamieniamy godziny (przecinkowe) na same minuty,
tworzymy dwa przedziały za pomocną range i porównujemy je array_intersect mamy dzięki temu część wspólną.
Jeżeli zna ktoś jeszcze inny sposób to proszę o post.
Dziekuje