Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]SYSTEM REZERWACJI POKOI
Forum PHP.pl > Forum > Przedszkole
pijawaman
Witam!

Jestem nowy na tym forum. Zarejestrowałem się, ponieważ stawiam pierwsze kroki w programowaniu PHP z użyciem baz danych MySQL i potrzebuję pomocy.

Chcę stworzyć system rezerwacji pokoi w małym pensjonacie.

Założenia:

I. 7 pokoi:

- 3 x pokój 1-os.
- 2 x -//- 2-os.
- 1 x -//- 3-os.
- 1 x -//- 4-os.

II. Rezerwacja poprzez wybór daty z klikanego kalendarza:

W tym momencie najprostszym sposobem wydaje mi się formularz (HTML5):

-użytkownik ma wybrać datę przyjazdu i odjazdu oraz ilość miejsc w pokoju
-pokój i data musi zostać sprawdzony pod kątem zajętości ( to pewnie w PHP )
-po sprawdzeniu zajętości przekierowanie do formularza do wprowadzenia danych i finalizacji rezerwacji
-po dokonaniu rezerwacji -> komunikat z informacjami o dokonanej rezerwacji

  1. <form action="rezerwacja.php" method="post">
  2. Data przyjazdu:<br />
  3. <input type="date" name="dataod" value="" ><br /> <br />
  4. Data wyjazdu:<br />
  5. <input type="date" name="datado" value="" ><br /> <br />
  6. Ilość miejsc w pokoju:<br />
  7. <input type="number" name="iloscmiejsc" min="1" max="4" value="2"><br /><br />
  8. <input type="submit" value="Rezerwuj">
  9. </form>


Niestety nie każda przeglądarka poprawnie to wyświetli, dlatego może trzeba będzie inaczej do tego podejść ( czekam na sugestję) sad.gif

III. Wszystko ma być oparte na bazie danych MySql.

Mam problem z wykreowaniem odpowiednich tabel i pól w nich zawartych ;/

Na razie widzę to tak:

Tabele:

Rezerwacja (Rezerwacja_id, Data_od, Data_do, Ilosc_miejsc)

Pokoje (Pokoj_id, Ilosc_miejsc, Cena_za_dobe)

Gosc (Gosc_id, Imie, Nazwisko, Adres, Tel., Email)

Dokonana_rezerwacja(Rezerwacja_id, Pokoj_id, Gosc_id, Ilosc_dni, Naleznosc)

IV. W PHP:

- odczytywanie danych z formularza
- spr. czy wybrany pokój jest wolny
- jeśli pokój jest wolny to przechodzimy do formularza z danymi osobowymi
- po wypełnieniu wszystko zapisywane jest do tabeli 'Dokonana_rezerwacja' , a użytkownikowi zostaje wyświetlony tylko wiersz z jego rezerwacją

Na razie mam w głowie tylko tyle. Proszę o pomoc i ewentualne nakierowanie mnie na poprawne podejście do tematu.
markonix
Datapicker z juqery UI - najpopularniejszy.
Nie opierałbym się jeszcze o te natywne.
Generalnie fajnie by tam już z góry zrobić disabled dni gdzie wszystkie pokoje i tak są już zajęte.

Min/max - obok można napisać po prostu "Minimum 1, maksymalnie 4". A potem walidować to jeszcze w PHP.

Dobrze by było przy sprawdzaniu w przypadku zajętości jakoś nie odsyłać klienta z kwitkiem tylko zaproponować najbliższe wolne terminy.
pijawaman
Dzięki jak ogarnę ten kalendarz to dam znać smile.gif Masz jakieś dobre źródło żebym obczaił jak zrobić ten kal czy na forum poszukać ?

A co do tabel to nie za dużo na mieszałem ? Może wystarczy mniej tego bajzlu?
Może wystarczyłoby tak:

Pokoje (PokojID, Ilosc_miejsc, Cena_za_dobe)
Rezerwacja(RezerwacjaID, PokojID, Dataod, Datado)
Gosc(RezerwacjaID, PokojID, Imie, Nazwisko, Tel., Email)

Tylko cały czas nie ogarniam jak to sensownie połączyć :/

Ale ok na razie jak ogarnę kalendarz to będzie coś takiego:

1. Klient z kalendarza wybiera datę od i do oraz ilość miejsc w pokoju z formularza i wciska przycisk 'Sprawdź' -->
-->2. Najpierw sprawdzane jest czy wypełnił wszystkie pola

  1. if (!$dataod || !$datado || $ilosc_miejsc)
  2. {
  3. echo 'Nie wybrano wyszystkich potrzebnych danych <br />';
  4. echo '<a href="rezerwuj.html"> Wróć do poprzedniej strony i spróbuj ponownie. </a> <br />';
  5.  
  6. }
  7.  
  8.  


---------------->3. Jeśli dane zostały poprawnie wypełnione to sprawdzane jest w tabelach :
no i właśnie chyba trzeba jakoś scalić dane w jednej tabeli, ponieważ ->
->musi być sprawdzone czy w wybranym terminie jest wolny pokój z wybraną liczbą miejsc, czyli ---->
---> lepiej by było jakby te dane były przechowywane w jednej tabeli tak ? --->
-----> np, Tabela - Rezerwacja (rezID, ilosc_miejsc, dataod, datado)
-------> Tabela - Pokoje (pokojID, ilosc_miejsc, cena_za_dobe)

------------------------>4. Jeśli termin jest zajęty wyświetlony jest komunikat w innym wypadku rezerwacja jest dokonywana
- wpisywane są dane odnośnie tejże rezerwacji do tabeli Rezerwacja
- z kalendarze pobierane są dni i obliczana ich ilość
- z tabeli pokoje pobierana jest cena_za_dobę
- wartości są mnożone i wyświetlane jako przewidziana za pobyt należność

Może być wstępnie coś takiego:
  1. $dataod = $_POST['dataod'];
  2. $datado = $_POST['datado'];
  3. $cena_za_dobe = $_POST['cena_za_dobe'];
  4.  
  5. for($iloscdni <= $datado; $iloscdni = $datado; $iloscdni++)
  6. {
  7. $naleznosc = $iloscdni * $cena_za_dobe;
  8.  
  9. echo ' Należność: ' .$naleznosc;
  10.  
  11. }


Ogólnie chcę żeby użytkownik zobaczył coś takiego:

  1. echo 'Rezerwacja przyjęta w dniu: ' .date('jS F'). '<br />'.
  2. 'Zarezerwowano pokój dla ' .$iloscmiejsc. ' osób/y <br />'
  3. .'Czas pobytu : ' .$iloscdni. ' dni<br />'.
  4. .'Należność: ' .$naleznosc. ' zł<br /><br />'.
  5.  


Na ten czas widzę to tak jak się to ogarnie to można powoli wprowadzać bajery tongue.gif
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.