Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][sql] zagmatwane sortowanie
gojira
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 14.10.2007

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


po paru godzinach szukania, albo ja kiepsko szukam, albo zmeczenie juz

ale mam takie dwa problemy:

1) po wyrzuceniu wynilow wyszukiwania na ekran, prz nazwach kolumny mam strzalki, chce aby po nacisnieciu ustrzalki, wynik wyszukiwania sortowal sie wg kolumny ktora zostala posortowana od najwiekszych do najmniejszy itd.
  1. <?php
  2. <a href=&#092;"produkty.php?\"><img src='004.jpg' alt='Sortowanie Rosnaco wg NAZWY' /></a>
  3. Nazwa
  4. <a href=&#092;"produkty.php?\"><img src='066.jpg' alt='Sortowanie Malejaco wg NAZWY' /></a>
  5. ?>

wiem ze to mniejwiecej tak ma wygladac, nie wiem jednak co ma byc po .php?...
chodzi o sortowanie na danej stronie czyli bez ladowania

2) i niestety drugi problem:

musze zrobic wyniki wyrzycane na ekran stronami, znaczy sie tak ze mam 14 wynikow wyszukiwania, i wyswietlam je po 10, a nastepna strona to te 4...
szukalem wszedzie i powiem szczerze ze raczej nie znalazlem nic na ten temat
z gory dzieki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
drPayton
post
Post #2





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

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


1. Jeżeli bez przeładowania, to tylko AJAX. Poszukaj na googlach klasy advAjax, na głównej stronie w przykładach masz takie coś
2. Stronicowanie to bardzo popularny temat, więc chyba niezbyt starannie szukałeś. Zobacz np klasę, którą ma @nospor w podpisie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował drPayton 28.10.2007, 23:23:58
Go to the top of the page
+Quote Post
gojira
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 14.10.2007

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


faktycznie wystarczylo zmienic na porcjowanie i znalazlem cos o stronicowaniu, ale w moim przypadku ajax odpada, to znaczy mam w planach nauke go, jaknajbardziej (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) ale na chwile obecna niet... mzoe zle powiedzialem ze bez przeladowania. ale jak zrobic mimo to, ze po nacisnieciu ktores ze stzralek przy naglowku kolumn (nazwie kolumny) sortowalo sie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
drPayton
post
Post #4





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

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


1. Dwa rozwiązania:
a. JS potrafi sortować dane w komórkach tabeli, musiałbyś poszukać na googlach
b. Jeżeli dane pochodzą z bazy danych, np tak
- produkty.php?sortfield=nazwa&sortorder=asc
- w momencie pobierania danych z bazy:

  1. <?php
  2. $sortfield = (isset($_GET['sortfield'])) ? $_GET['sortfield'] : 'domyślnepole';
  3. $sortorder= (isset($_GET['sortorder'])) ? $_GET['sortorder'] : 'ASC';
  4.  
  5. //query: select (...) ORDER BY $sortfield $sortorder
  6. //(olewając możliwe w takim układzie sqlInjection ;) )
  7. ?>
Go to the top of the page
+Quote Post
vokiel
post
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


To nie moje, od razu sie przyznaje bez bicia (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

W sekcji head:
  1. <script type="text/javascript">
  2. function exPL(x){
  3. return x.toLowerCase().replace(/[ąęśćółńżź]/g,function(s){
  4. return(s=='ą'?'a':s=='ę'?'e':s=='ś'?'s':s=='ć'?'c':
  5. s=='ó'?'o':s=='ł'?'l':s=='ń'?'n':s=='ź'?'z':'zż')+'ż'})
  6. }
  7.  
  8. var Sekcja,Wiersze,Tablica_Wierszy=[]
  9.  
  10. function initSort(){
  11. if(!document.getElementById)return
  12. Sekcja=document.getElementById('Sort_id')
  13. Wiersze=Sekcja.getElementsByTagName('tr')
  14.  
  15. for(var i=0;i<Wiersze.length;i++)
  16. Tablica_Wierszy[i]=Wiersze[i].cloneNode(true)
  17. }
  18.  
  19. function Sortuj(x, sort){
  20. if(!document.getElementById||!Wiersze)return
  21.  
  22. Tablica_Wierszy.sort(function(A,B,a,b){
  23. a=A.getElementsByTagName('td')[x].innerHTML
  24. b=B.getElementsByTagName('td')[x].innerHTML
  25. a=exPL(a);b=exPL(b);
  26. if (sort == 'up')
  27. return a>b?1:a<b?-1:0
  28. else
  29. return a<b?1:a>b?-1:0
  30. }
  31. )
  32.  
  33. while(Wiersze.length)
  34. Sekcja.removeChild(Wiersze[0])
  35. for(var i=0;i<Tablica_Wierszy.length;i++)
  36. Sekcja.appendChild(Tablica_Wierszy[i])
  37. }


& body:
  1. <body onload="initSort()">
  2.  
  3. <p>
  4. <a href="#" onclick="Sortuj(0, 'up');return false">Sortuj według Imienia Rosnaco</a>||<a href="#" onclick="Sortuj(0, 'down');return false">Sortuj według Imienia Malejaco</a><br>
  5. <a href="#" onclick="Sortuj(1);return false">Sortuj według Nazwiska</a><br>
  6. <a href="#" onclick="Sortuj(2);return false">Sortuj według Zawodu</a><br>
  7. </p>
  8.  
  9. <table border="1">
  10. <tr><th>Imię</th><th>Nazwisko</th><th>Zawód</th></tr>
  11. </tbody>
  12. <tbody id="Sort_id">
  13. <tr><td>Jan</td><td>Kowalski</td><td>kowal</td></tr>
  14. <tr><td>Maciej</td><td>Kuroń</td><td>kucharz</td></tr>
  15. <tr><td>Zbigniew</td><td>Zamachowski</td><td>aktor</td></tr>
  16. <tr><td>Adam</td><td>Małysz</td><td>skoczek</td></tr>
  17. <tr><td>Bill</td><td>Clinton</td><td>emeryt</td></tr>
  18. <tr><td>Dorota</td><td>Stalińska</td><td>aktorka</td></tr>
  19. <tr><td>Krzysztof</td><td>Nowak</td><td>robotnik</td></tr>
  20. <tr><td>Bolesław</td><td>Chrobry</td><td>król</td></tr>
  21. <tr><td>Jerzy</td><td>Stuhr</td><td>aktor</td></tr>
  22. <tr><td>Kamil</td><td>Durczok</td><td>dziennikarz</td></tr>
  23. <tr><td>Natalia</td><td>Kukulska</td><td>piosenkarka</td></tr>
  24. <tr><td>Piotr</td><td>Buśka</td><td>webmaster</td></tr>
  25. <tr><td>Colin</td><td>McRae</td><td>kierowca</td></tr>
  26. <tr><td>Henryk</td><td>Sienkiewicz</td><td>pisarz</td></tr>
  27. <tr><td>Kazimierz</td><td>Wielki</td><td>król</td></tr>
  28. <tr><td>Bogdan</td><td>Piekarski</td><td>piekarz</td></tr>
  29. <tr><td>Stanisław</td><td>Moniszko</td><td>muzyk</td></tr>
  30. <tr><td>Adam</td><td>Mickiewicz</td><td>pisarz</td></tr>
  31. </tbody>


Czyli bez przeładowania, bez ajaxa, skoro nie chcesz się go jeszcze uczyć, ale jakbyś chciał:
mintAjax - dyanmiczna tabela na dole strony
Go to the top of the page
+Quote Post
gojira
post
Post #6





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 14.10.2007

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


mhm, posatram sie to teraz obczaic i zaadoptowac pod swoje... dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

no dobra, poniekad udalo sie sortowanie, mowie poniekad, bo sortuje mi wszytko (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) a teraz mi chodzi aby sortowal tylko wynik wyszukiwania, i niestety tu juz leze;/
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:32