![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 664 Pomógł: 169 Dołączył: 8.01.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
coś takiego:
i jeżeli num_rows będzie równe godz_koniec-godz_start, to znaczy, że żaden seans w tym czasie się nie zaczyna ani nie kończy. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 2 Dołączył: 22.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
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?
- Robisz zapytanie które odczyta dane where `godzina_poczatek` = '".$_POST['godzina_poczatek']."'
podobnie z końcem seansu. Ten post edytował Kasat 24.08.2010, 17:12:37 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
no proszę (IMG:style_emoticons/default/winksmiley.jpg) co 3 głowy to nie jedna. Dzięki za wskazanie drogi. sprawdzę wieczorem bo zaraz znikam i pochwale się czy i jak udało się rozwiązać problem. jeśli ktoś ma jakieś propozycje i pomysły to nie wstydzić się (IMG:style_emoticons/default/biggrin.gif) chętnie przeczytam (IMG:style_emoticons/default/smile.gif)
///edit użyłem rozwiązania które zaproponował bastard13. Dziękuję za okazaną pomoc (IMG:style_emoticons/default/winksmiley.jpg) Ten post edytował Darkstorm 25.08.2010, 11:57:16 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 20:04 |