Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapamiętywanie wartości w sesji przy użyciu stronicowania
brutal1985
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.08.2011

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


Witam.
Mam problem z zapamiętywaniem wartości w sesji. Mam formularz z 4 polami, w których wpisuję datę. Następnie robię zapytanie do bazy danych i wyświetlam rekordy w ilości 25 na stronę. Jeśli w/w. 4 pola są puste, to nie ma problemu. Jednak jeśli chociaż jedno z nich posiada jakąkolwiek wartość, to na drugiej podstronie i dalszych podstronach wyświetla się zapytanie, tak jakbym nie wprowadził żadnych danych do formularza.
Oto mój kod:
  1. if(empty($_POST['data_rozp_od']) )
  2. {
  3. $data_rozp_od = '0000-01-01';
  4. $_SESSION['data_rozp_od'] = $data_rozp_od;
  5. }
  6. else
  7. {
  8. $data_rozp_od = '0000-01-01';
  9. $_SESSION['data_rozp_od'] = $_POST['data_rozp_od'];
  10. }
  11.  
  12. if(empty($_POST['data_rozp_do']) )
  13. {
  14. $data_rozp_do = '9999-12-31';
  15. $_SESSION['data_rozp_do'] = $data_rozp_do;
  16. }
  17. else
  18. {
  19. $data_rozp_do = '9999-12-31';
  20. $_SESSION['data_rozp_do'] = $_POST['data_rozp_do'];
  21. }
  22.  
  23. if(empty($_POST['data_zak_od']) )
  24. {
  25. $data_zak_od = '0000-01-01';
  26. $_SESSION['data_zak_od'] = $data_zak_od;
  27. }
  28. else
  29. {
  30. $_SESSION['data_zak_od'] = $_POST['data_zak_od'];
  31. }
  32.  
  33. if(empty($_POST['data_zak_do']) )
  34. {
  35. $data_zak_do = '9999-12-31';
  36. $_SESSION['data_zak_do'] = $data_zak_do;
  37. }
  38. else
  39. {
  40. $data_zak_do = '9999-12-31';
  41. $_SESSION['data_zak_do'] = $_POST['data_zak_do'];
  42. }

oraz zapytanie do bazy danych
  1. if ($strona <= 1)
  2. {
  3. $sql = 'SELECT * FROM `Daty_uczest`, `Uczestnicy`, `Miejscowosc`, `Ulice`, `Program`
  4. WHERE `ID_Ucz` = `Ucz_ID` AND
  5. `ID_Miejsc`= `Miejsce_ID` AND
  6. `Ulica_ID` = `ID_Ulica` AND
  7. `Program_ID` = `ID_Program`
  8. AND `Data_rozp` BETWEEN "'.$_SESSION['data_rozp_od'].'" AND "'.$_SESSION['data_rozp_do'].'" AND
  9. `Data_zakon` BETWEEN "'.$_SESSION['data_zak_od'].'" AND "'.$_SESSION['data_zak_do'].'"
  10. ORDER BY `Nazwisko` ASC LIMIT 0, 25';
  11. }
  12. else
  13. {
  14. $sql = 'SELECT * FROM `Daty_uczest`, `Uczestnicy`, `Miejscowosc`, `Ulice`, `Program`
  15. WHERE `ID_Ucz` = `Ucz_ID` AND
  16. `ID_Miejsc`= `Miejsce_ID` AND
  17. `Ulica_ID` = `ID_Ulica` AND
  18. `Program_ID` = `ID_Program`
  19. AND `Data_rozp` BETWEEN "'.$_SESSION['data_rozp_od'].'" AND "'.$_SESSION['data_rozp_do'].'" AND
  20. `Data_zakon` BETWEEN "'.$_SESSION['data_zak_od'].'" AND "'.$_SESSION['data_zak_do'].'"
  21. ORDER BY `Nazwisko` ASC LIMIT '. (($strona - 1) * 25).', 25';
  22. }

Mam nadzieję, że ktoś ma pomysł, jak to przerobić, aby działało tak, jak powinno.

P.S. Dzięki za szybkie zamknięcie poprzedniego tematu. Nawet nie zdążyłem wyedytować.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Kshyhoo
post
Post #2





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




A inicjujesz jakoś sesje? w kodzie tego nie widać.
Go to the top of the page
+Quote Post
brutal1985
post
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.08.2011

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


Tak, mam na początku pliku:
  1. <?php
  2. ?>
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #4





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




Wyświetlasz sobie to, co przechodzi z formularza do sesji? Coś w stylu:
  1. print('<pre>POST: ');
  2. print_r($_POST);
  3. print('</pre>');
  4. print('<pre>GET: ');
  5. print_r($_GET);
  6. print('</pre>');
  7. print('<pre>SESSION: ');
  8. print_r ($_SESSION);
  9. print('</pre>');


Ten post edytował Kshyhoo 28.12.2011, 21:12:15
Go to the top of the page
+Quote Post
brutal1985
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 27.08.2011

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


Miałem taki kod do wyświetlenia:
  1. echo '<br><br>';
  2. echo $_SESSION['data_rozp_od'];
  3. echo '<br><br>';
  4. echo $_SESSION['data_rozp_do'];
  5. echo '<br><br>';
  6. echo $_SESSION['data_zak_od'];
  7. echo '<br><br>';
  8. echo $_SESSION['data_zak_do'];
  9. echo '<br><br>';

Wyświetlałem też treść polecenia sql i na pierwszej podstronie było ok, a na kolejnych przypisywał już domyślne wartości, tak jakbym w ogóle nie wysłał wartości w formularzu.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #6





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




Sprawdzaj, co przechodzi po wysłaniu formularza. Kodu formularza nie podałeś, więc mogę jedynie przypuszczać, że dane nie przechodzą.
Go to the top of the page
+Quote Post
wookieb
post
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Problem z czytaniem tematów do których się odsyła. Czy prosiłem o zakładanie nowego wątku?
Temat: Jak poprawnie zatytulowac watek
Jeszcze jeden taki wybryk a dostaniesz moderkę na tydzień.
Powód edycji: [wookieb]:
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:59