Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapamiętywanie wartości w sesji przy użyciu stronicowania
Forum PHP.pl > Forum > PHP
brutal1985
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ć.
Kshyhoo
A inicjujesz jakoś sesje? w kodzie tego nie widać.
brutal1985
Tak, mam na początku pliku:
  1. <?php
  2. ?>
Kshyhoo
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>');
brutal1985
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.
Kshyhoo
Sprawdzaj, co przechodzi po wysłaniu formularza. Kodu formularza nie podałeś, więc mogę jedynie przypuszczać, że dane nie przechodzą.
wookieb
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ń.
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.