Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Gdzie jest błąd - proste sortowanie
Forum PHP.pl > Forum > PHP
kasek
Witam

Napisałem poniższy kod , chodzi o sortowanie wyników z bazy danych , są dwa "GETY" old oraz newest , po kliknięciu jest sprawdzane co zostało kliknięte(old lub newest) i ustawiana jest odpowiednia sesja, w podstronie sortowanie odbywa się w zależności od tego co jest w sesji,i ustawiany jest również odpowiedni link , jeśli sesja jest OLD , link jest NEWEST i analogicznie jesli sesja jest NEWEST ustawiany jest link OLD tak żeby zmieniać sortowanie, jednak nie działa to do końca prawidłowo ponieważ muszę klikać po dwa razy zanim wyniki się zmienią, czasami po kliknięciu link się nie zmienia i jest ten sam, aż kliknę go drugi raz, a powinno być za każdym razem zmieniane... Patrzę w to już jakiś czas i nie wiem gdzie jest błąd, poniżej kod odpowiedzialny za sesje.

  1. if (isset($_GET['dsort']))
  2. {
  3.  
  4. if(isset($_SESSION['sort_data']))
  5. {
  6.  
  7. if ($_GET['dsort'] == 'old')
  8. {
  9.  
  10. if ($_SESSION['sort_data'] == 'DESC')
  11. {
  12. unset($_SESSION['sort_data']);
  13. $_SESSION['sort_data'] = 'ASC';
  14. $sort_data = $_SESSION['sort_data'];
  15. /* echo "SESJA: ASC"; */
  16.  
  17. }
  18. elseif ($_SESSION['sort_data'] == 'ASC')
  19. {
  20.  
  21. $sort_data = $_SESSION['sort_data'];
  22. /* echo "SESJA: ASC"; */
  23.  
  24. }
  25. }
  26.  
  27.  
  28. elseif ($_GET['dsort'] == 'newest')
  29. {
  30. if($_SESSION['sort_data'] == 'ASC')
  31. {
  32. unset($_SESSION['sort_data']);
  33. $_SESSION['sort_data'] = 'DESC';
  34. $sort_data = $_SESSION['sort_data'];
  35.  
  36. }
  37. elseif ($_SESSION['sort_data'] == 'DESC')
  38. {
  39.  
  40. $sort_data = $_SESSION['sort_data'];
  41.  
  42.  
  43. }
  44.  
  45. }
  46. }
  47. elseif(!isset($_SESSION['sort_data']))
  48.  
  49. {
  50. if ($_GET['dsort'] == 'old')
  51. {
  52.  
  53. $_SESSION['sort_data'] = 'ASC';
  54. $sort_data = $_SESSION['sort_data'];
  55.  
  56. }
  57.  
  58.  
  59. elseif ($_GET['dsort'] == 'newest')
  60. {
  61. $_SESSION['sort_data'] = 'DESC';
  62. $sort_data = $_SESSION['sort_data'];
  63.  
  64. }
  65. }
  66. }
  67.  
  68. elseif (!isset($_GET['dsort']))
  69. {
  70.  
  71. if (!isset($_SESSION['sort_data']))
  72. {
  73. $_SESSION['sort_data'] = 'DESC';
  74. $sort_data = 'DESC';
  75.  
  76. }
  77.  
  78. elseif (isset($_SESSION['sort_data']))
  79. {
  80. /* echo "brak get istnieje sesja".$_SESSION['sort_data'].""; */
  81. $sort_data = $_SESSION['sort_data'];
  82. }
  83. }
CuteOne
A sprawdzałeś czy dane w sesji są takie jakich oczekujesz? dodaj to przed twoim kodem:
  1. echo '<pre>';
  2. var_dump($_SESSION);
  3. echo '</pre>';
toaspzoo
a masz session_start(); ?
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.