Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]podzapytanie: paginacja + sortowanie po kolumnach
kotek2185
post 5.11.2012, 18:41:56
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


Witam, mam tabelę pobieraną z bazy, mam stronicowanie oraz sortowanie po kolumnach. I to wszystko śmiga. Chciałbym uzyskać efekt sortowania ale tylko w obrębie danego parta. Wygooglałem, że należy zastosować (można zastosować) podzapytanie. Tylko nie bardzo wiem jak się do tego zabrać? Mam takie zapytanie:

  1. SELECT * FROM $tbl_name
  2.  
  3. ORDER BY $orderBy $dir
  4.  
  5. LIMIT $start, $limit


I w tym momencie poprzez
  1. <a href="indeks.php?page=glowna2&part=<?php echo $part?>&orderBy=nazwa_ulicy&dir=<?php echo $nDir?>">Adres</a>
w prosty sposób sortuje mi dane, ale na całości zbioru. Jak to ugryść?
Go to the top of the page
+Quote Post
b4rt3kk
post 5.11.2012, 19:01:23
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Najlepiej jakbyś użył jakiegoś pluginu jQuery (jeśli chodzi o samo sortowanie porcji wyników).

http://www.tripwiremagazine.com/2012/05/jq...rt-plugins.html

Oczywiście możesz też zapisać wyniki (albo np. same id) na danej stronie i przeprowadzić mniej więcej takie sortowanie:

  1. $id = array(); // tablica wyników z danej strony
  2. $subSort = 'costam DESC';
  3.  
  4. $query = "SELECT * FROM tabela WHERE id IN (".implode(',', $id).") ORDER BY {$subSort}";


wtedy w $_GET musiałbyś przekazywać dodatkowy argument subSort (oprócz domyślnych).



--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
kotek2185
post 5.11.2012, 19:20:53
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


Chyba za dużo zabawy z jquery i z Twoim rozwiązaniem chociaż na pewno jak nic nie wymyśle to je zastosuje. Znalazłem stary wątek:

http://forum.php.pl/index.php?showtopic=104815

Może ktoś coś rozwinąć na ten temat? Czy da się w ten sposób uzyskać ww efekt? czy nie kombinować zastosować sposób kolegi b4rt3kk
Go to the top of the page
+Quote Post
b4rt3kk
post 5.11.2012, 19:25:49
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(kotek2185 @ 5.11.2012, 19:20:53 ) *
Chyba za dużo zabawy z jquery i z Twoim rozwiązaniem chociaż na pewno jak nic nie wymyśle to je zastosuje. Znalazłem stary wątek:

http://forum.php.pl/index.php?showtopic=104815

Może ktoś coś rozwinąć na ten temat? Czy da się w ten sposób uzyskać ww efekt? czy nie kombinować zastosować sposób kolegi b4rt3kk


Jednym zapytaniem:

  1. SELECT * FROM $tbl_name WHERE id IN (SELECT id FROM $tbl_name ORDER BY $orderBy $dir LIMIT $start, $limit) ORDER BY $subOrder LIMIT $subLimit


Tylko niestety to nie zadziała w MySQL.

Ten post edytował b4rt3kk 5.11.2012, 19:26:33


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
kotek2185
post 5.11.2012, 21:44:03
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 7.12.2011

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


a czemu nie zadziała? tak poczytałem o tym i wydawać by się mogło że by śmigało...

Wracając do rozwiązania b4rt3kk to jak wrzucić ID które znajdują się na danej strony do tablicy?
Go to the top of the page
+Quote Post
b4rt3kk
post 5.11.2012, 23:52:49
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(kotek2185 @ 5.11.2012, 21:44:03 ) *
a czemu nie zadziała? tak poczytałem o tym i wydawać by się mogło że by śmigało...

Wracając do rozwiązania b4rt3kk to jak wrzucić ID które znajdują się na danej strony do tablicy?


Ad. 1. MySQL nie przetworzy podzapytania, które jest ograniczone LIMIT.

Ad. 2. Zwyczajnie, zapytanie które przedstawiłeś w pierwszym poście generuje pewną liczbę wyników ograniczoną LIMIT. Właśnie to wrzucasz do osobnej tablicy.





--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
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: 6.07.2025 - 16:57