Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Prosta rezeracja terminu
Forum PHP.pl > Forum > Przedszkole
-Miki-
Proszę o porady jak poradzić sobie z wykonaniem takiej prostej rezerwacji jak tu:
http://www.wulkantorun.pl/rezerw2b.php?date15=20121206

W tej chwili pomysł mam taki. Tworze tabele Godziny(IdGodziny, NazwaGodziny) Stanowiska(IdStanowiska, NazwaStanowiska) Rezerwacje(IdRezerwacji, DataRezerwacji, IdGodziny[FK], IdStanowiska[FK], IdPojazdu[FK])

W tabeli Godziny widze to tak, że Id1. to 8.00, Id2. 8.30 itd. Dodatkowo do Rezerwacji dodaje IdPojazdu, który wcześniej klient przypiszę do swojego konta. Mój problem jest w jaki sposób wylistować tak ja w/w linku wszystkie godziny z danego dnia i zaznaczać, które zajete a które wolne. Jeśli wolne to możliwość zarezerowania. Proszę o jakieś wskazówki, które mnie nakierują na rozwiązanie problemu.
b4rt3kk
Żeby zminimalizować liczbę pól w tabeli, nie musisz tworzyć wszystkich godzin po kolei z przypisem wolne/zajęte.

Rezerwacje - id, data (włącznie z określoną godziną), id_stanowiska, id_pojazdu
Stanowiska - id, opis/nazwa

Teraz robisz sobie w php pętlę, która wypisuje kolejne godziny, z przedziałami jakie chcesz, od godziny otwarcia, aż do zamknięcia. Porównujesz to z tabelą rezerwacji, jeśli dana godzina zajęta to oznaczasz to specjalnie, jeśli wolna, tworzysz link do formularza rezerwacji.
-Miki-
Cytat(b4rt3kk @ 4.12.2012, 23:23:32 ) *
Żeby zminimalizować liczbę pól w tabeli, nie musisz tworzyć wszystkich godzin po kolei z przypisem wolne/zajęte.

Rezerwacje - id, data (włącznie z określoną godziną), id_stanowiska, id_pojazdu
Stanowiska - id, opis/nazwa

Teraz robisz sobie w php pętlę, która wypisuje kolejne godziny, z przedziałami jakie chcesz, od godziny otwarcia, aż do zamknięcia. Porównujesz to z tabelą rezerwacji, jeśli dana godzina zajęta to oznaczasz to specjalnie, jeśli wolna, tworzysz link do formularza rezerwacji.


Tylko jak będę dodawał rezerwację do bazy to jaki czas podam? Z funkcję date() ?
Mógłbyś przedstawić jak taka pętla powinna wyglądać według Ciebie?
b4rt3kk
Nie no, godzinę będziesz wpisywał z formularza, tylko z aktualną datą.

  1. $query = "SELECT data FROM rezerwacje WHERE data=$dzis";
  2. // przetworzenie zapytania
  3. // rozbicie daty na godziny (obojętnie jak)
  4.  
  5. for ($i=9; $i<=17; $i++) {
  6.  
  7. echo 'Godzina: '.$i;
  8. if (in_array($i, $tablica_godzin_z_dzis)) echo 'Termin zajety'; else echo '<a href="zarezerwuj.php?godzina=$i">Zarezerwuj</a>';
  9. echo '<br/>';
  10.  
  11. }


No i przy zapisie do rezerwacji pobierasz dzisiejsze d-m-Y dodajesz tylko godzinę, np 10 i taki ciąg zapisujesz do bazy jako nową rezerwację. Jak ktoś chce zarezerwować do przodu o kilka dni, to też przecież możesz sam utworzyć odpowiedni string daty.
-Miki-
Dzięki za rozpiske. Powiedz tylko, do $tablica_godzin_z_dzis przypiszę godziny, które zwróci mi zapytanie na poczatku?
b4rt3kk
Cytat(-Miki- @ 5.12.2012, 00:26:49 ) *
Dzięki za rozpiske. Powiedz tylko, do $tablica_godzin_z_dzis przypiszę godziny, które zwróci mi zapytanie na poczatku?


Właśnie tak. Nie koniecznie muszą to być godziny z dziś, równie dobrze, za tydzień czy za miesiąc, oczywiście na podstawie wyników z bazy, wystarczy tylko odpowiednio operować warunkiem WHERE.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.