Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Gdzie jest błąd - proste sortowanie
kasek
post 16.12.2010, 23:40:03
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 9.11.2007

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


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. }
Go to the top of the page
+Quote Post
CuteOne
post 17.12.2010, 01:10:59
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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>';


Ten post edytował CuteOne 17.12.2010, 01:11:13
Go to the top of the page
+Quote Post
toaspzoo
post 24.12.2010, 23:28:43
Post #3





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


a masz session_start(); ?


--------------------

LS Easter egg <
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: 20.06.2025 - 18:27