Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][sql]Sortowanie po kliknięciu, Jak zmieniać sortowanie wyników w wyświetlonej tabeli po kliknięciu na
ksiegol
post 2.08.2007, 10:35:46
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 26.06.2007

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


Witam

Mam na stronie taką tabelkę, która po pobraniu danych z bazy sortuje je według nazwiska, a następnie w pętli wyświetla kolejne wiersze. Chciałbym jednak wprowadzić opcję aby po kliknięciu na odpowiedni element z wiersza nagłówkowego tabeli, zmianiała się zasada sortowania. Jak to zrobić, aby zmiany realizowane były w ramach wyświetlonej już strony? Jak na razie mam jedynie pomysł przygotowania oddzielnych plików php z innymi zasadami sortowania, które otwierałby się po kliknięciu na odpowiedni nagłówek.

z góry dzięki za pomoc

Adam
Go to the top of the page
+Quote Post
John
post 2.08.2007, 10:40:22
Post #2





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

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


Nie musisz przygotowywać oddzielnych plików, możesz to zrobić w ramach zapytania.
Po prostu nagłówek który ma być kliknięty musi przenosić typ sorowania np.
  1. <a href=mojastrona.php?sortowanie=nazwisko>

a kod zapytania wygląda wtedy tak :
  1. SELECT * FROM mojaTabela ORDER BY '$sortowanie' DESC


w ramach jednej strony, to ja rozumiem bez odświeżania, wtedy musisz to zawrzeć w javascripcie.


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
plurr
post 2.08.2007, 12:06:33
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


a ja sie dolacze do tematu i zapytam o takie "podwojne sortowanie" jak np w skrzynkach mailowych. A mianowicie:

mamy tabele:
imie/ nazwisko/ temat / data /

Chce teraz posortowac wyniki wzgledem daty:

  1. SELECT * FROM mojaTabela ORDER BY 'data' DESC


Teraz chce jeszcze raz kliknac na naglowek 'data' aby posortowac znow, ale w odwrotnej kolejnosci:

  1. SELECT * FROM mojaTabela ORDER BY 'data' ASC


Problem w tym, jak sprawdzi ze obecnie jest DESC i chcialbym ASC ? Znalazlem pewien kod, jednak to js, a jak to zrobic cos takiego w php ?

  1. <?php
  2. function changeSort(s) {
  3. if (currentSort == s)
  4. currentSortOrder = currentSortOrder == "ASC" ? "DESC" : "ASC";
  5.  else { currentSortOrder = "ASC";
  6. if (currentSort != "")
  7. $(currentSort + "Sort").style.fontWeight = "normal";
  8. $(+ "Sort").style.fontWeight = "bold"; 
  9. } currentSort = s;
  10. changePage(0);
  11. }
  12. ?>



wlasnie, chodzi mi o ta funkcje 'currentSortr' czy w php jest jakis odpowiednik ?

Ten post edytował plurr 2.08.2007, 12:08:26


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
drPayton
post 2.08.2007, 16:27:32
Post #4





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Analogicznie jak napisał John:
  1. <a href=mojastrona.php?sortowanie=nazwisko&amp;kierunek=ASC>

a w php:
  1. <?php
  2. $sortOrder = ($_GET['kierunek']) ? $_GET['kierunek'] : 'DESC';
  3. ?>


A najlepiej AJAX'em. Na stronie advAjax jest gotowy przykład:
advAjax - strona główna
Na samym dole, link: PHP Solutions - Przykład 2. - Stronicowanie danych

Ten post edytował drPayton 2.08.2007, 16:29:44
Go to the top of the page
+Quote Post
plurr
post 2.08.2007, 16:59:17
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


taaak, zrobilem tak samo i gitara biggrin.gif guitar.gif

Jednakze ciekawiej to wyglada w ajaxie, widzialem juz kiedys ten przyklad, ale za duzo roboty (moje pojecie o ajaxie jest bliskie zeru) tongue.gif


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
drPayton
post 2.08.2007, 18:21:36
Post #6





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


Dużo roboty - ale:
1. Na tym przykładzie uczyłem się AJAX'a biggrin.gif
2. Dużo frajdy
3. Cudny efekt winksmiley.jpg
No chyba, że to jakaś bardzo pilna robota, to wtedy faktycznie

Ten post edytował drPayton 2.08.2007, 18:21:48
Go to the top of the page
+Quote Post
Arrowb
post 2.08.2007, 18:51:11
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 23.07.2007

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


witam,

a ja polecam mintAjax, sortowanie tabeli to minuta roboty winksmiley.jpg

http://www.mintajax.pl/?guide#kontrolki_tabele
Go to the top of the page
+Quote Post
plurr
post 2.08.2007, 20:28:47
Post #8





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


Cytat(drPayton @ 2.08.2007, 19:21:36 ) *
Dużo roboty - ale:
1. Na tym przykładzie uczyłem się AJAX'a biggrin.gif
2. Dużo frajdy
3. Cudny efekt winksmiley.jpg
No chyba, że to jakaś bardzo pilna robota, to wtedy faktycznie


nie da sie ukryc, efekt cudny smile.gif W sumie to nie jest jakas pilna robota, mam miesiac czasu na prosty systemik - na moje umiejetnosci, wiec chyba sobie poczytam jakies poradniki... smile.gif

Cytat(Arrowb @ 2.08.2007, 19:51:11 ) *
witam,

a ja polecam mintAjax, sortowanie tabeli to minuta roboty winksmiley.jpg

http://www.mintajax.pl/?guide#kontrolki_tabele



O wlasnie, elegancka stronka, fajnie wytlumaczone, wielkie dzieki smile.gif

Ten post edytował plurr 2.08.2007, 20:29:37


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
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: 14.07.2025 - 01:02