![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 10.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam mały problem otóż chciałbym wprowadzić możliwość sortowania po kliknięciu odpowiednio na danym nagłówku tabeli. Tabele mam wczytywane z bazy, podaje kod dla rozjaśnienia sprawy:
Chciałbym aby była możliwość sortowania z pozycji stronki poprzez kliknięcie na: L.p Imię i Nazwisko Pozycja Numer na koszulce Wiek Narodowosc Uwagi Jestem mocno początkujący, choć już naprawde sporo przy tym siedziałem i nie mogę dojść :/ Prosze o pomoc - lub chociaż naprowadzenie mnie. Z góry bardzo dziękuję Ten post edytował Oscar_83 10.05.2007, 15:11:55 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 165 Pomógł: 9 Dołączył: 9.04.2002 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
aby sortować użyj w zapytaniu order by
np:
sortuje na zasadach od a do z albo
sortuje na zasadach od z do a w tabeli z nagówków kolumn zrób link, odwołanie do tej samej strony z parametrem, np. index.php?sort=imie albo ?sort=numer a w kodzie
Łukasz Ten post edytował kossa 10.05.2007, 16:14:35 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 10.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
bo ja właśnie zrobiłem to sortowanie tyle że innym sposobem - napewno gorszym:
czyli w każdej rubryce zrobiłem odnośnik do innej stronki a stronki różnią się od siebie tylko tym sortowaniem po kolei: ORDER BY L.P, Nazwisko, Pozycja itd itp. Twój sposób jest dużo szybszy, z tym że ten kod który mi podałeś mam wpisać w ten kod do siebie na górę tak? PS: zaraz popróbuje Oki Super!! ![]() ![]() ![]() I jeszcze mam jedno pytanie do tego sortowania. Jak zrobić żeby sortowało kolumne Imie_i_Nazwisko względem nazwiska któro w bazie wpisane jest jako drugie (tzn po imieniu), jeśli będzie trzeba to mogę oczywiście w bazie zamienic kolejność imienia i nazwiska ale chciałbym żeby wyświetlało pierwsze imię a potem nazwisko. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
DESC dodaje się po spacji:
A co do kolumny Imie_i_Nazwisko to rozbij ją na dwie: Imie i Nazwisko. Wtedy nie będziesz miał żadnych problemów z sortowaniem. -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 10.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
no tak ale troche źle chyba to napisałem bo chodziło mi o to DESC ale żeby działało za drugim kliknięciem, a dokładniej: klikam na nagłówek kolumny sortuje mi potem klikam drugi raz i sortuje mi odwrotnie.
a co do tych kolumn to też właśnie mi tak już ktoś sugerował, dzięki wielkie za pomoc. A co do tego sortowania to uzyskałem ten sam efekt bez if else if else ![]() np: ORDER BY '$sort' a potem odnośniki takie jak mi doradzano - i wszystko działa dobrze ![]() Pozdrawiam i dziękuję za wszystkie odpowiedzi. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
No to w zależności od danych z tablicy $_GET tworzysz linki. Jeśli aktualnie sortujesz daną kolumnę rosnąco, to tworzysz link do sortowania tek kolumny malejąco, etc.
Ten post edytował Kicok 11.05.2007, 07:57:16 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 10.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za pomoc.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 255 Pomógł: 5 Dołączył: 20.03.2007 Skąd: Kraków Ostrzeżenie: (30%) ![]() ![]() |
do takiego sortowania ładnie byłoby zrobić sobie uniwersalną klasę na przyszłość
powinna zawierac takie metody jak: __construct($columnsTable) - do constructora przekazujesz liste kolumn tabeli - np:
- pobiera on z $_GET od razu 'sort' i 'order' (moga to byc tez liczby oznaczajace którą z kolei kolumne sortowac a nie nazwy kolumn) getSortColumn() - zwraca nazwe kolumny po ktorej ma sie sortowac zapytanie SQL getOrder() - zwraca DESC albo ASC potrzebne do SQL getHeaderLink($nr) - zwraca czesc linku odpowiadajaca za sortowanie dla kolumny i numerze $nr, np: 'sort=4&order=1' -jezeli $nr to ta kolumna co zwraca w getSortColumn to order bedzie rowny: a ) 1 - gdy getOrder() zwraca ASC b ) 0 - gdy getOrder() zwraca DESC -gdy $nr to kolumna inna niz w getSortColumn to order bedzie rowny 0 -przykladowe uzycie tej metody: PS: można by też troche ulepszyc tą klase tak, żeby obsługiwała paginacje, czyli stronicowanie wtedy trzeba by przekazywać jej do konstruktora też ilość wszystkich wierszy w tabeli i dodać funkcje zwracające linki do poszczegolnych stron i zmodyfikowac getHeaderLink zeby dawało do linka nr aktualnej strony też ![]() Ten post edytował domis86 13.05.2007, 00:04:54 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 04:35 |