Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Przekazywanie dalej otrzymanych zmiennych, Otrzymalem zmienne typu GET i chce je dalej przekazac
dreamit
post 7.08.2018, 08:45:37
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.07.2018

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


Na początku dodam, że po prostu nie wiem czy w dobrą stronę kombinuje.

Mam plik rezerwacja.php - tam utworzony kalendarz, dane są pobierane z parametrów typu $_GET z linku np.
http://localhost/rezerwacja/2018/08/14
2018 przypisuje do zmiennej $rok, 08 przypisuje do zmiennej $miesiac, oraz 14 przypisuje do zmiennej $dzien
Efekt który chce uzyskać to te zmienne $rok, $miesiac, $dzien przekazać dalej w formularzu.

Na chwilę obecną to utworzone w ten sposób:
$rok = $_GET['rok'];
$miesiac = $_GET['miesiac'];
$dzien = $_GET['dzien'];

no i ogólnie rozpatrzyłem różne przypadki ze jak uzytkownik nie poda tych parametrów w linku to ustawi aktualny rok miesiac i dzien i przypisze to do zmiennych $rok, $miesiac, $dzien.
Teraz chciałbym te zmienne przekazać dalej $rok, $miesiac, $dzien i nie wiem czy lepiej wymagać zalogowania się uzytkownika i zastąpić te zmienne zmiennymi typu SESSION:
$_SESSION['rok'] = $_GET['rok'];
$_SESSION['miesiac'] = $_GET['miesiac'];
$_SESSION['dzien'] = $_GET['dzien'];

czy przypisać do zmiennych typu POST, ale to chyba w ogole głupota i nie ma sensu
$_POST['rok'] = $_GET['rok'];
$_POST['miesiac'] = $_GET['miesiac'];
$_POST['dzien'] = $_GET['dzien'];


Mam w tym samym pliku formularz:
  1. <form action="/zarezerwowany.php" method="post">
  2. Wybierz godzinę rozpoczęcia wizyty:
  3. <select name="data_rozp">
  4. <option value="0"> 08:00</option>
  5. <option value="1"> 08:30</option>
  6. <option value="2"> 09:00</option>
  7. <option value="3"> 09:30</option>
  8. <option value="4"> 10:00</option>
  9. </select>
  10. <br /><br />
  11.  
  12.  
  13. Wybierz godzinę zakończenia wizyty:
  14. <select name="data_zak">
  15. <option value="0"> 08:00</option>
  16. <option value="1"> 08:30</option>
  17. <option value="2"> 09:00</option>
  18. <option value="3"> 09:30</option>
  19. <option value="4"> 10:00</option>
  20. <option value="5"> 10:30</option>
  21. </select>
  22. <br /><br />
  23.  
  24. <input type="submit" value="Rezerwuj!" />
  25. </form>



Efekt który chce osiągnąć to przekazać wcześniej uzyskane zmienne $rok, $miesiac, $dzien oraz pola wyboru data_rozp i data_zak i zapisać je w bazie danych w tabeli rezerwacja w kolumnie data_rozp: yyyy-mm-dd hh:mm:ss oraz data_zak: yyyy-mm-dd hh:mm:ss

Myślałem jeszcze to przekazać w ten sposób, że w formularzu dodać:
  1. <?php
  2. echo "<input type=\"hidden\" name=\"rok\" value=\"$rok\" />";
  3. ?>


Jakieś rady / sugestie?

Ten post edytował dreamit 7.08.2018, 09:05:00
Go to the top of the page
+Quote Post
trueblue
post 7.08.2018, 10:03:52
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Umieszczenie danych w sesji, nie wymaga logowania użytkownika.
Przekazać dane możesz również poprzez umieszczenie ich w polach hidden formularza. Należy pamiętać w tym przypadku, aby weryfikować dane z poprzedniego kroku w następnym lub na samym końcu (użytkownik może je modyfikować).


--------------------
Go to the top of the page
+Quote Post
dreamit
post 8.08.2018, 07:56:23
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 15.07.2018

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


ok dziękuje za pomoc tongue.gif wybiore zmienne sesyjne ktore i tak sprawdze jeszcze raz na wszelki wypadek

Mam jeszcze dodatkowo pytanie.
W bazie danych mam tabele o nazwie wizyty i dwie kolumny data_rozp oraz data_zak typu DATETIME
w formacie: yyyy-mm-dd hh-mm-ss

natomiast w formularzu:
  1. <form action="/zarezerwowany.php" method="post">
  2. Wybierz godzinę rozpoczęcia wizyty:
  3. <select name="data_rozp">
  4. <option value="08:00"> 08:00</option>
  5. <option value="08:30"> 08:30</option>
  6. <option value="09:00"> 09:00</option>
  7. <option value="09:30"> 09:30</option>
  8. <option value="10:00"> 10:00</option>
  9. </select>
  10. <br /><br />
  11.  
  12.  
  13. Wybierz godzinę zakończenia wizyty:
  14. <select name="data_zak">
  15. <option value="08:30"> 08:30</option>
  16. <option value="09:00"> 09:00</option>
  17. <option value="09:30"> 09:30</option>
  18. <option value="10:00"> 10:00</option>
  19. <option value="10:30"> 10:30</option>
  20. </select>
  21. <br /><br />
  22.  
  23. <input type="submit" value="Rezerwuj!" />
  24. </form>

oraz przekazuje te zmienne sesyjne year, month, day, które po wysłaniu formularza zapisuje jako zwykle zmienne $year, $month, $day i usuwam te wczesniej przekazane zmienne sesyjne.

Pytanie brzmi: Jak najprościej rozwiązać sprawdzanie dat? Czego użyć? Dobrze, że uzywam datetime czy lepiej timestamp czy jakiś, przedział dat zrobić w jednej kolumnie (o ile tak się da)?
Będę chciał sprawdzać czy po prostu w wybranym przedziale $year-$month-$day i data_rozp (godzina) do $year-$month-$day i data_zak (godzina) nie ma rezerwacji. Jeśli nie ma to wstawić taki rekord.
Kompletnie nie wiem jak się za to zabrać.

bo np. jedna osoba zarezerwuje od 08:00 do 10:00 a druga będzie chciała od 09:00 do 09:30 i jaki w ogole mialbym to zrobić żeby sprawdzało mi ten cały zakres
  1. SELECT * FROM tabela WHERE data_rozp > '$year-$month-$day $data_rozp:00' AND DATA_zak < '$year-$month-$day $data_zak:00'

Coś takiego miałoby sens?

Problem 1:

W bazie danych mam następujące rekordy
date rozpoczęcia taką:
2018-08-08 08:00:00

a datę zakończenia taką
2018-08-08 10:00:00

ale jak daje zapytanie do bazy
  1. SELECT * FROM tabela WHERE data_rozp >= '2018-08-08 09:30:00' AND data_zak <= '2018-08-08 10:00:00'


to zwraca pusto, no na logike to dobrze zwraca bo zle ulozylem to powyzsze zapytanie, ale nie wiem jak je ulozyc poprawnie, próbowałem z BETWEEN ale cos kiepsko wychodzilo

a moim celem jest wyszukanie wszystkich rekordów których data_rozp i data_zak jest w przedziale: 2018-08-08 09:30:00-2018-08-08 10:00:00

Ten post edytował dreamit 8.08.2018, 07:59:45
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 Wersja Lo-Fi Aktualny czas: 26.04.2024 - 20:24