panel rezerwacji, sprawdzanie rekordów w bazie |
panel rezerwacji, sprawdzanie rekordów w bazie |
18.10.2014, 08:44:58
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2014 Ostrzeżenie: (0%) |
Witam, na początek chciałem przeprosić że na dzień dobry proszę o pomoc
Kodu podawać nie będę, ponieważ mam burdel jestem na etapie tworzenia "puzzli" które potem od nowa zbiorę w jedną całość jak już wszystko będzie działać. Jako, że mam problem z opisaniem problemu podam jedynie niezbędne informację żeby nie mieszać W bazie danych stworzyłem 2 tabele - 'godziny' oraz 'rezerwacje'. W tabeli godziny są 2 kolumny - 'idgodzina' oraz 'godzina' (w tej drugiej na sztywno wpisałem godziny kolejno od 6 do 22 tj. '6:00-7:00', '7:00-8:00','8:00-9:00' itd.) Do tabeli rezerwacje będą wpisywane i pobierane informacje o rezerwacji. uff... kolejnym etapem było stworzenie tablicy z 3 kolumnami: Godzina, Sala 1, Sala 2 (do wybrania wstępnie jest jedna z dwóch sal). Kolumna 'Godzina' w każdym wierszu wyświetla wspomniane wcześniej na sztywno wpisane godziny, w kolumnach Sala 1 i Sala 2 przy każdej godzinie są przyciski 'Zarezerwuj'. Powyżej jest inputbox pobierający datę rezerwacji. Po kliknięciu w przycisk do bazy, do tabeli rezerwacje dodane są rekordy: $data, $idgodzina, $sala. I tu zaczynają się schody... Chciałbym aby przyciski 'Zarezerwuj' zostały wyłączone/zmieniały kolor w momencie kiedy taka rezerwacja juz istnieje. Reasumując: jak w momencie wyświetlania przycisku sprawdzić czy istnieje już rezerwacja o dokładnie takiej dacie ($data), godzinie($idgodzina) i sali($sala)? Jako, że dopiero wchodzę w świat programowania i jest to mój pierwszy post liczę na wyrozumiałość wszelkie wskazówki są na wagę złota! Pozdrawiam! |
|
|
21.10.2014, 14:51:38
Post
#2
|
|
Grupa: Zarejestrowani Postów: 186 Pomógł: 4 Dołączył: 13.10.2009 Ostrzeżenie: (0%) |
Cześć,
Nie pomogę Ci całośiowo bo zbyt dużo pisania. W każdym razie uważam, że źle podszedłeś do problemu, który sobie postawiłeś. Nie rozumiem po co Ci tabela z godzinami w osobnej tablicy oraz po co ci pola sala1 i sala2 ? W tabeli rezerwacje możesz stworzyć kolumne godzina typu int, a pola sala1 oraz sala2 zamienić na sala przechowując wartosć int oznaczającą numer sali ( w przypadku ewetnualngo rozwoju łatwo to przerzucić na 1:N ) Generalnie można to tak skrócić aby posiadac tylko dwa pola data i sala ( id unikalne standardowo ) To po pierwsze. Po drugie: Domyslam się, że masz kilka forów jeden przetwarza godziny a drugi sale ( aktualnej daty ). Masz zatem dwa parametry w pętli godzina i sala. Brakuje jedynie daty. Datę w przypadku statycznej strony musisz uzyskać od razu. Oznacza to, że każdy dzień będzie miał oddzielną kartę. Klikasz w określony dzień i wyświetlają się sale i godziny ( dla tego dnia ). Mając takie 3 parametry wystarczy napisać funkcje pomocniczą składającą się z 3 parametrów ( sala, godzina, data ). Następnie za pomocą selekta sprawdzić czy istnieje rekord w bazie o takich danych. Funkcje należy użyć oczywiście w trakcie budowania godzin i sal ( data musi być już znana - to oczywiste ) I w ostanim etapie za pomocą if-a można sobie zrobić co się chce. Pozdrawiam Ten post edytował Micchaleq 21.10.2014, 14:56:28 -------------------- |
|
|
22.10.2014, 19:40:45
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2014 Ostrzeżenie: (0%) |
Już wyjaśniam, otóż tabela z godzinami w osobnej tablicy ma za zadanie osiągnąć taki efekt: .
Pole sala zrobiłem dokładnie tak jak napisałeś, sala1 i sala2 to sala mała i duża z powyższej tabelki. ZAREZERWUJ - z powyższej tabeli chciałbym aby były przyciskami, które pobiorą dane o godzinie i sali. Data jak wspomniałeś zostanie pobrana wcześniej, ponieważ wyświetlą się jedynie godziny z konkretnego podanego wcześniej dnia - ale to nie stanowi problemu. Cytat Następnie za pomocą selekta sprawdzić czy istnieje rekord w bazie o takich danych - dokładnie to stanowi problem. Jak wspomniałem chcę wyłączyć przyciski (zarezerwuj), zmienić kolorek - cokolwiek, w momencie gdy ten termin jest już zarezerwowany. Póki co z powyższą tabelką powiązana jest jedynie tabela 'godziny' aby wyświetlić wszystkie dostępne godziny, zaś przyciski zarezerwuj mają sprawdzać zawartość tabeli 'rezerwacje' i na tej podstawie wyświetlać dostępność danej godziny. Im dłużej nad tym myślę tym bardziej głupieję, w książkach ani google żadnych rozwiązań - zdaje się, że da się to prościej i praktyczniej rozwiązać... A gdyby wszystkie godziny wypisać na sztywno w php zamiast jak wspomniałeś osobną tabelę z godzinami w bazie robić? tj. <th width=100px bgcolor=#5041AF >7:00 - 7:30</th> <th width=100px bgcolor=#5041AF >7:30 - 8:00</th> zamiast: <th width=100px bgcolor=#5041AF >$row[1]</th> Pozdrawiam i dzięki za zaangażowanie. Ten post edytował pantomcio 22.10.2014, 19:41:40 |
|
|
28.10.2014, 13:32:00
Post
#4
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Generowanie tej tabelki wrzuć do pętli tak aby była generowana po jednym rekordzie (data i godzina).
potem zwykły if który sprawdza czy jest zajęte czy nie:
Ten post edytował NickOver 28.10.2014, 13:32:38 |
|
|
28.10.2014, 15:38:04
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 4.08.2014 Ostrzeżenie: (0%) |
Cytat tak aby była generowana po jednym rekordzie (data i godzina). krok po kroku doszliśmy do sedna row[x] wywala wszystkie rekordy z wybranej kolumny, jak wyświetlić je pojedyńczo? bądź kontrolować to w jakikolwiek sposób? |
|
|
28.10.2014, 20:00:34
Post
#6
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) |
Słowo klucz to...
Tum tu ru ru ru ru rum FOREACH! Przepraszam. Pomysł żeby tak to napisać wydał mi się prześmieszny Użyj Pętli foreach. Pobierz wszystkie godziny do tablicy i potem po niej literuj (tak to się poprawnie mówi?). |
|
|
Wersja Lo-Fi | Aktualny czas: 3.05.2024 - 03:56 |