Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Połączenie formularza rezerwacji Bardzo Pilne, Proszę wszystkich o pomoc
miszarus
post 19.01.2010, 18:53:55
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Witam oto moje dwa pliki. Nie wiem czemu, ale nie dodaje mi rekordów do bazy.....szok jakiś :/
Ma być to prosta rezerwacja, ale nie wiem dlaczego nie zapisuje tych danych w bazie.
Połączenie jest na pewno dobrze.......
Bardzo proszę o pomoc...

  1. <?php
  2.  
  3. require_once('conn.php');
  4.  
  5.  
  6. $id_pokoje=$_POST['id_pokoje'];
  7. $id_users=$konto;
  8. $id_uslugi=$_POST['id_uslugi'];
  9. $pobyt_od=$_POST['pobyt_od'];
  10. $pobyt_do=$_POST['pobyt_do'];
  11. $id_faktura=$_POST['id_faktura'];
  12. $zapytanie="
  13. INSERT INTO `miszarus_hotel`.`rezerwacja`
  14. (`id_rezerwacji`, `id_pokoje`, `id_users`, `pobyt_od`, `pobyt_do`, `id_uslugi`, `id_faktura`)
  15. VALUES (NULL, \'".$id_pokoje."\', \'".$id_users."\', \'".$pobyt_od."\', \'".$pobyt_do."\', \'".$id_uslugi."\', \'".$czyfaktura."\' )
  16. ";
  17.  
  18. $wynik = mysql_query($zapytanie);
  19.  
  20. /*
  21. $wynik = @mysql_query($zapytanie)or die(mysql_error());;
  22.   if ($result){ //jezeli nie wystąpiły żadne blędy
  23.   $message .= 'Twoje dane zostały dodane do bazy';
  24.   }else{
  25.   $message .= 'Wystąpił błąd. Przepraszamy za utrudnienia<br />';
  26.   }
  27. */
  28.  
  29.  
  30. if(isset($message)){
  31. echo $message;
  32. }
  33.  
  34. ?>


  1. <form action="rezerwacjadobazy.php" method="post">
  2. Wybierz pokój:<br><br>
  3. <select name="id_pokoje">
  4. <option value="1">Apartament Smoka</option>
  5. <option value="2">Apartameny Szefa</option>
  6. <option value="3">Apartament Michala</option>
  7. <option value="4">Pokój jednoosobowy(101)</option>
  8. <option value="5">Pokój jednoosobowy(102)</option>
  9. <option value="6">Pokój jednoosobowy(103)</option>
  10. <option value="7">Pokój dwuosobowy(201)</option>
  11. <option value="8">Pokój dwuosobowy (202)</option>
  12. <option value="9">Pokój dwuosobowy(203)</option>
  13. <option value="10">Pokój trzyosobowy(301)</option>
  14. <option value="11">Pokój trzyosobowy(302)</option>
  15. <option value="12">Pokój trzyosobowy(303)</option>
  16. </select>
  17. <br>
  18. <br>
  19. </br>
  20. Proszę o podanie daty w formacie: RRRR-MM-DD (np. 2010-01-17)<br>
  21. Pobyt od: <input type="text" name="pobyt_od" maxlength="10" /><br>
  22. Pobyt do: <input type="text" name="pobyt_do" maxlength="10" /><br><br><br>
  23. Wybierz usługi dodatkowe:<br>
  24. <input type="checkbox" name="id_uslugi" value="1" /> niadanie<br>
  25. <input type="checkbox" name="id_uslugi" value="2" /> kolacja<br>
  26. <input type="checkbox" name="id_uslugi" value="3" /> szampan
  27. <br><br><br><br>
  28. <input type="checkbox" name="id_faktura" value="1" /> Zaznacz opcję jeżeli ma być wystawiona faktura VAT:<br><br><br>
  29.  
  30. <input type="submit" value="ZAREZERWUJ" />
  31.  
  32. </form>

Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
lnn
post 19.01.2010, 18:56:57
Post #2





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


daj po zapisie do bazy mysql_error() i sprawdz co ci zwraca
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 19:05:47
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'1\', \'\', \'2022-02-11\', \'9211-21-21\', \'2\', \'\' )' at line 3
Go to the top of the page
+Quote Post
evolucja
post 19.01.2010, 19:11:06
Post #4





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


może tak?

  1. $zapytanie="
  2. INSERT INTO `miszarus_hotel`.`rezerwacja`
  3. (`id_rezerwacji`, `id_pokoje`, `id_users`, `pobyt_od`, `pobyt_do`, `id_uslugi`, `id_faktura`)
  4. VALUES (NULL, '".$id_pokoje."', '".$id_users."', '".$pobyt_od."', '".$pobyt_do."', '".$id_uslugi."', '".$czyfaktura."' )
  5. ";


Ten post edytował evolucja 19.01.2010, 19:11:46


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 19:36:40
Post #5





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Jak tak, to tak:

Parse error: syntax error, unexpected T_STRING in /home/miszarus/domains/megahotel.unl.pl/public_html/rezerwacjadobazy.php on line 14

Kur.... wlaczę z tym już 3dzień, i nie mogę wygrać.
Jestem już w pełnej desperacji sad.gif

Teraz wywala błąd taki:

Wystšpił błšd. Przepraszamy za utrudnienia (czyli ten co sam ustawiłem)

a kod jest taki

  1. <?php
  2.  
  3. require_once('conn.php');
  4.  
  5.  
  6. $id_pokoje=$_POST['id_pokoje'];
  7. $id_users=$konto;
  8. $id_uslugi=$_POST['id_uslugi'];
  9. $pobyt_od=$_POST['pobyt_od'];
  10. $pobyt_do=$_POST['pobyt_do'];
  11. $id_faktura=$_POST['id_faktura'];
  12. $zapytanie="
  13. INSERT INTO `miszarus_hotel`.`rezerwacja`
  14. (`id_rezerwacji`, `id_pokoje`, `id_users`, `pobyt_od`, `pobyt_do`, `id_uslugi`, `id_faktura`)
  15. VALUES (NULL, '".$id_pokoje."', '".$id_users."', '".$pobyt_od."', '".$pobyt_do."', '".$id_uslugi."', '".$id_faktura."' )
  16. ";
  17.  
  18. $wynik = @mysql_query($zapytanie)or die(mysql_error());;
  19. if ($result){ //jezeli nie wystąpiły żadne blędy
  20. $message .= 'Twoje dane zostały dodane do bazy';
  21. }else{
  22. $message .= 'Wystąpił błąd. Przepraszamy za utrudnienia<br />';
  23. }
  24.  
  25.  
  26. if(isset($message)){
  27. echo $message;
  28. }
  29.  
  30. ?>


HIHI,
dodaje rekordy ale wyświetla "wystąpil bląd".
jak się tego pozbyćquestionmark.gif
aha, i co zrobić aby pobierał dane o zalogowanym użytkowniku?

Ten post edytował miszarus 19.01.2010, 19:25:54
Go to the top of the page
+Quote Post
evolucja
post 19.01.2010, 19:46:35
Post #6





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


Ta instrukcja zawsze będzie prawdziwa, bo nie ma w kodzie nigdzie zmiennej $result winksmiley.jpg Nie chodziło ci czasami o $wynik?

A dane pobierasz normalnie, np. po nicku usera.
  1. $zapytanie = mysql_query("SELECT * FROM 'users' WHERE `username` = \"$nick\"");
  2. $wynik = mysql_fetch_array($zapytanie);
  3.  
  4. echo $wynik["id"];
  5. echo $wynik["email"];


itd...


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
Kshyhoo
post 19.01.2010, 19:48:02
Post #7





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Żeby wrzucał zalogowanego usera, zaloguj go wpierw, wrzuć np. do sesji i potem $_SESSION['login'] do bazy.


--------------------
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 19:57:36
Post #8





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Wielkie, dzięki.

ale z tym if ($result) do dowaliłem.
Dzięki serdeczne smile.gif

to aby pobierał mi id_usera muszę zrobić sesje i żeby z nich pobierał id_usera?
dobrze rozumiem??
Go to the top of the page
+Quote Post
Kshyhoo
post 19.01.2010, 20:02:23
Post #9





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




No gdzieś musisz "trzymać" zalogowanego, możesz w sesji... Np.:
  1. if ($_SESSION["zalogowany"]=="tak") {
  2. if ($_SESSION['login']) {
  3. ... i tu kodzik do bazy


--------------------
Go to the top of the page
+Quote Post
evolucja
post 19.01.2010, 20:04:06
Post #10





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


Przy logowaniu wrzucasz $id_usera do sesji lub ciastka, a potem na innych stronach z niego korzystasz. Chodź kod który podałem wyżej również mógłbyś wykorzystać, z tym, że generowało by to dodatkowe zapytania...

Np, gdy nick usera trzymasz w ciastkach, id pobierasz w ten sposób:
  1. $zapytanie = mysql_query("SELECT * FROM 'users' WHERE `username` = \"$_COOKIES['nick']\"");
  2. $wynik = mysql_fetch_array($zapytanie);
  3. $id = $wynik['user_id'];


Ten post edytował evolucja 19.01.2010, 20:04:41


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 20:07:21
Post #11





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


OK, myślę że sobie poradzę, ale mam kolejne pytanie...mianowicie.
Chodzi mi o datę pobytu od-do.
Chodzi mi o to, aby nie można było dokonać rezerwacji danego pokoju, jeżeli ktoś w tym czasie ma go zarezerwowanego?

Go to the top of the page
+Quote Post
Kshyhoo
post 19.01.2010, 20:22:35
Post #12





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




To jest proste. Dodajesz do tabeli kolumnę, w której trzymasz stan pokoju, który sprawdzasz. Jeżeli jest 1 to zajęty, jeżeli =0, to można wynająć...
  1. SELECT * FROM pokoje WHERE stan=1


Ten post edytował Kshyhoo 19.01.2010, 20:26:14


--------------------
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 20:28:05
Post #13





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Ale jeśli ktoś zarezerwuje pokój o 12 godzinie na datę 12.01.2009-20.01.2009 a ktoś dwie minuty później na datę 21.01.2009-23.01.2009 to jaka będzie wtedy wartość w tabeli?? jak będzie ustalana??
Go to the top of the page
+Quote Post
evolucja
post 19.01.2010, 20:29:58
Post #14





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


To nie takie proste. Źle pomyślałeś po prostu, zapomniałeś o fakcie takim, iż pokój rezerwowany jest w różnych przedziałach czasowych.. Tzn. w tabeli może być kilka rezerwacji tego samego pokoju, ale o różnych datach.

W takim razie musisz pobrać wszystkie wpisy, a następnie porównywać datę wynajmu każdego z nich... to już trochę cięższe będzie.

Ten post edytował evolucja 19.01.2010, 20:30:36


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
celbarowicz
post 19.01.2010, 20:32:45
Post #15





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


robiłem coś podobnego wraz z nazwą id_hotelu , id_numerem pokoju ,itd .. zapisywałem do bazy datę w systemie unix, to wystarczyło po odpowiednim zapytaniu stwierdzić czy pokój jest zajęty, wszystkie wpisy z poprzedniego miesiąca po zapisaniu do archiwum były kasowane.
zobacz stronę noce.pl, to nie jest moje dzieło ale podglądałem funkcjonalność, ciekawy jest kalendarz.
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 22:10:50
Post #16





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


A więc nie będzie tak łatwo jak myślałem, ale cóż...tego się spodziewałem smile.gif
Czyli muszę zrobić oddzielną tabelę, i połączyć ją z rezerwacją. W tabeli umieścić kilka rekordów.
Ale nie ma możliwości zapisania daty jakoś inaczej, żeby to było prościej??
Go to the top of the page
+Quote Post
Kshyhoo
post 19.01.2010, 22:15:55
Post #17





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ale właśnie taka metoda jest najprostsza.


--------------------
Go to the top of the page
+Quote Post
miszarus
post 19.01.2010, 22:35:49
Post #18





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Wszytko pięknie, ale jaką metodą porównywać przedział czasowy??
O to się rozchodzi....bo te same daty to pryszcz, ale jak rozwiązać przedział czasowy...
Bo sama data nic nie da....jeżeli ktoś zamówi dzień później na dzień dłużej pokój zostanie zarezerwowany, a w rzeczywistości nie będzie dostępny :/
Kurka wodna....z deszczu pod rynnę sad.gif
Go to the top of the page
+Quote Post
Kshyhoo
post 19.01.2010, 22:53:32
Post #19





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Pokoje wynajmuje się zazwyczaj na doby lub godziny, więc przedziały czasowe to nie problem. Zapisujesz w bazie zawsze koniec zdarzenia, czyli koniec rezerwacji. W warunkach sprawdzasz przedziały czasowe, w których są wolne pokoje.


--------------------
Go to the top of the page
+Quote Post
miszarus
post 20.01.2010, 11:01:05
Post #20





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


No dobra....
mam kolejne pytanie, w jaki sposób porównywać dane??
I co umieścić w tabeli?? czy wolny pokój,?
Czy jak? "nie bardzo to widzę" :/
Może ktoś mi rozjaśni umysł sad.gif
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 15:40