Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Prosta rezeracja terminu
--Miki--
post
Post #1





Goście







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.
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Ż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.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
--Miki--
post
Post #3





Goście







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?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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.

Ten post edytował b4rt3kk 5.12.2012, 00:14:42


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
--Miki--
post
Post #5





Goście







Dzięki za rozpiske. Powiedz tylko, do $tablica_godzin_z_dzis przypiszę godziny, które zwróci mi zapytanie na poczatku?
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


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.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 10:25