![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
w otrzymanej tabeli z wynikami wyszukiwania chcialbym robic sortowanie klikajac nazwe poszczegolnej kolumny, np. po kliknieciu w imie, sortowanie jest po ;imie; itd..
Chcialem to zrobic w ten sposob, ze podpinam pod nazwe kolumny link, np.:
W pliku sort.php umiescilem identyczny kod jak w pliku ktory wygenerowal mi tabele pierwsza, bazowa, czyli bez sortowania. W pliku sort.php zmienilem tylko ORDER BY $sortujaca. Wydaje mi sie ze powyzsze nie bedzie dzialac, chocby dlatego, ze skrypt musi pobierac z wczesniej wypelnionego formularza dane niezbedne do przedstawienia interesujacych nas wynikow wyszukiwania, dlatego powtorne zrealizowanie tego samego zapytania, tyle ze ze zmienna w ORDER BY nie przyniesie oczekiwanego skutku. W jaki wiec sposob mozna przeprowadzic to sortowanie? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 446 Pomógł: 0 Dołączył: 5.03.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
mozesz to zrobic na dwa sposoby po pierwsze mozesz gdzies zapamietac kategorie wedlug ktorych wyszukujesz albo wczytac wyniki do pomocniczej tablicy i sortowac wedlug odpowiedniej kolumny. to tyle co tak na szybko przychodzi mi do glowy
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
w jaki sposob moge wczytac wyniki z pierwotnego wyszukiwania do pomocniczej tablicy i pozniej na niej przeprowadzac sortowanie wedlug ustalonego parametru?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 446 Pomógł: 0 Dołączył: 5.03.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
po prostu jak wyciagasz jakas zmienna z bazy to wpisujesz ja do tablicy dwuwymiarowej np. a[$i][$j] gdzie po i masz kolejnych uzytkownikow a po j ich dane jak kliknie na link to przekazujesz po czym ma byc sortowane np. po ksywie a ksywa jest w 3 kolumnie wiec a[$i][2] i porownujesz. a sortowania to albo napisz swoje wlasne albo poszukaj w manualu o funkcji sortujacej
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
A może po prostu po klinięciu na linka wywołuj za każdym razem zapytanie mysql które wyświetla Ci wyniki wyszukiwania.
W zmiennej $ord będziesz miał porządek sortowania.
A link by wyglądał tak:
gdzie name - nazwa odpowiedniej kolumny -------------------- -------------
------ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
no tak wlasnie chcialem zrobic, ale:
- nie moge chyba wywolac jeszcze raz tego samego zapytania, gdyz to zapytanie wywolane poraz pierwszy 'ciagnie' rozne parametry z formularza, na podstawie ktorych przeszukuje baze. To zapytanie zawiera wiele parametrow przekazywanych z formularza za pomoca GETa |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Jedyny sensowny pomysł jaki mi przychodzi do głowy, to zapamiętywanie tych kryteriów wyszukiwania.
Możnaby je zapisywać w sesji i potem przy sortowaniu z nich korzystać. Zapytanie które wyciąga dane z bazy ma jakiś szablon, więc podstawiasz prametry z sesji do zapytania i robisz tak jak poprzednio pokazałem. Ewentualnie możnaby wrzucać te dane do jakiejś tymczasowej bazy i stamtąd je pobierać, nie korzystasz wtedy z sesji, ale musisz zrobić dodatkową tabelę. -------------------- -------------
------ |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
no ok, zalozenie tego pomyslu jest dla mnie jasne. Nie wiem tylko jak to zrealizowac, tzn w jaki sposob mozna podstawic parametry z sesji do zapytania? Rozumiem, ze ma to wygladac tak:
1) search.php - plik ktory realizuje pierwsze (glowne) zapytanie, pobierajac z formularza dane niezbedne do przefiltrowania bazy 2) sort.php - plik, ktory jest odnosnikiem dla kolumny o nazwie NAME w pliku search.php, gdzie Po kliknieciu na nazwe kolumny NAME w pliku search.php zostaje uruchomiony plik sort.php ktory realizuje identyczne zapytanie jak search.php dzieki temu ze mozna mu podac parametry z sesji + ORDER BY $ord. myle sie? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
No nie do końca tak
![]() Zauważ że dodatkowy plik z kodem nie jest potrzebny. Wszystko robisz w jednym pliku. Przykładowo dzieje się to tak: 1. Najpierw wyszukiwanie na podstawie danych z formularza, kryterium wyszukiwania zapisywane do sesji
2. Masz wyświetlone wyniki wyszukiwania, nazwa każdej kolumny jest linkiem, który wywołuje sortowanie. Parametr, który określa sortowanie doklejasz do urla.
3. Sprawdzasz czy ustawiona jest zmienna $_GET["ord"] - czyli został kliknięty link, i wywołujesz zapytanie.
To tylko przykład zapytania. Musi być ono takie samo jak to które wykorzystuje dane z formularza, dodajesz tylko parametr odpowedzialny za sortowanie. Optymalne rozwiązanie to to napewno nie jest, ale nic innego nie przychodzi mi do głowy ![]() -------------------- -------------
------ |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 4.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
No OK. zaimplementowalem Twoj pomysl w swoim kodzie. Nie ma zadnych bledow, ale niestety po kliknieciu na nazwe kolumny celem posortowania wynikow wyszukiwania baza 'gubi' otrzymane wczesniej warunki dla wyszukiwania - wiec tak jakby dane nie zapisuja sie tak jak trzeba do sesji..
|
|
|
-Gość_ftrunks- |
![]()
Post
#11
|
Goście ![]() |
hm moze wystarczy zainicjowac sesje (session_start() ) i zarejestrowac zmienne przed nadaniem im wartosci (session_register() ) ? moze to pomoze
![]() |
|
|
-Guest- |
![]()
Post
#12
|
Goście ![]() |
w jaki sposob inicjuje sie sesje? z tego co wyczytalem, zaraz na poczatku skryptu wystarczy umiescic:
? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 02:24 |