Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sortowanie polskich znaków
Ardziej
post
Post #1





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


@nospor a może wiesz co zrobić aby wyeliminować błąd z sortowaniem polskich znaczków w TinyTable ?
http://www.leigeber.com/2009/11/advanced-j...t-table-sorter/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 14)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tinytable nie sortuje w bazie danych a w skrypcie JS. Nie ma to żadnego związku z tym tematem smile.gif

Nie, nie zajmowałem się sortowaniem w JS polskich krzaczków i nie chce mi się analizować kodu Tinytable by sprawdzac w jaki sposób oni sortują.

Dodatkowo jeśli operujesz na większej liczbie danych to nie korzystaj z Tinytable, gdyż to ustrojstwo wymaga pobrania wszystkich danych od razu i w żaden sposób to nie jest optymalne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ardziej
post
Post #3





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


No tak, choć głównie będzie to się sortować na localu i max z 150-200 wpisów będzie, wcześniej miałem podobny skrypt w JS i też polskie znaki segreguję na końcu.
A mam jeszcze jedno pytanie, jeżeli chciałbym wczytywać ustawienia zewnętrzne do tego JS to co byś wybrał ?
Parsowanie ini ?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Temat wydzielam
Cytat
u i max z 150-200 wpisów będzie
15-20 to jest malo. 150-200 to już nie potrzebnie naraz wszystko pobierasz smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ardziej
post
Post #5





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


Tyle, że mi chodzi na szybkości dostępu tych danych, dla mnie nie ma różnicy ile pobiera naraz, ważne aby było i szybko się zmieniało.
Może jakoś inaczej by to zrobić ?
Bo w TinyTable jest wyszukiwarka na live i sortowanie, więc ciężko w PHP+MYSQL coś takiego osiągnąć.
Jak ktoś by znał odpowiedź na pytanie to proszę o wskazówki smile.gif
Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Może jakoś inaczej by to zrobić ?
oczywiscie - AJAX

Tu masz fajny grid do tego:
http://www.trirand.com/blog/

a tu demo:
http://trirand.com/blog/jqgrid/jqgrid.html

Cytat
Bo w TinyTable jest wyszukiwarka na live i sortowanie, więc ciężko w PHP+MYSQL coś takiego osiągnąć.
Bez jaj.... smile.gif
Grid co ci podałem ma to wszystko a nawet więcej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ardziej
post
Post #7





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


Dzięki bardzo za fajny ajaxowy przykładzik smile.gif
Jednak, jeżeli ktoś wie jak naprawić błąd w TinyTable to bym prosił również o odpowiedź, bo zanim wprowadzę JGrida to trochę roboty smile.gif
Pozdrawiam i dzięki nospor
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Linia 197 to jakaś tam sobie implementacja porównania wartości.
Prawidłowo robi się w ten sposób.
http://stackoverflow.com/questions/3630645...s-in-javascript

Ten post edytował wookieb 11.10.2010, 15:32:11


--------------------
Go to the top of the page
+Quote Post
Ardziej
post
Post #9





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


Witam ponownie, minęło już trochę czasu jednak dalej mi się nie udało tego problemu rozwiązać, dlatego uważam, że fajnie by było rozwiązać ten problem ponieważ do najłatwiejszych nie należy smile.gif
Nie będę ściemniał, JS dopiero się uczę, dokładnie korzystam z frameworka Jquery i już go coraz bardziej ogarniam. Moją główną specjalizacją jest AS i HTML/CSS oraz PHP/MYSQL, dlatego liczę na waszą pomoc smile.gif
Pozdrawiam i czekam na odpowiedź smile.gif

Cytat(nospor @ 11.10.2010, 09:02:09 ) *
oczywiscie - AJAX

Tu masz fajny grid do tego:
http://www.trirand.com/blog/

a tu demo:
http://trirand.com/blog/jqgrid/jqgrid.html

Bez jaj.... smile.gif
Grid co ci podałem ma to wszystko a nawet więcej

Witaj, skorzystałem z Twojej rady jednak nic z tego, pobiera poprawnie tylko na początku, po odświeżeniu lub sortowaniu w JqGrid polskie fonty lecą na koniec smile.gif
Więc JqGrid zbytnio nic nie pomógł, masz jakiś pomysł jak się z tym uporać ?
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Witaj, skorzystałem z Twojej rady jednak nic z tego, pobiera poprawnie tylko na początku, po odświeżeniu lub sortowaniu w JqGrid polskie fonty lecą na koniec
Więc JqGrid zbytnio nic nie pomógł, masz jakiś pomysł jak się z tym uporać ?
Grid nie ma nic do polskich czcionek więc nie ściemniaj tongue.gif
grid pobiera dane ajaxem z Twojego skryptu php, w ktorym to ty pobierasz dane z bazy mysql. Jak ci źle sortuje to masz źle napisany skrypt php do pobierania danych lub masz złe kodowanie w bazie że ci polskie krzaki się źle sortują

ps: zakładam, że grida używasz nonstop w trybie ajax


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ardziej
post
Post #11





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


Właśnie nie, kodowanie utf-8 wszędzie na plikach i w bazie utf8_unicode_ci i przy połączeniu też.
Włączam stronkę z JqGrid wyświetla się poprawnie, jednak jak kliknę np. na Tytuł to już po tym sortowaniu wszystko się psuje, czyli zdecydowanie coś po stronie JavaScript się dzieję, korzystam z przykładu JSON loading data. Więc problem jest niestety z JqGrid, coś pewnie nie tak zrobiłem, tylko co skoro korzystam z przykładu gotowego ?!
Pozdrawiam
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ponawiam:
grid wyswietla dane w takiej kolejnosci, w jakiej zwraca mu je serwer. Serwerem jest Twoj skrypt php. WIec to Twoj skrypt php zwraca dla grida dane w złej kolejności przy sortowaniu.

Pokaz kod


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Ardziej
post
Post #13





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


Oto kod:
  1. <?php //include the information needed for the connection to MySQL data base server.
  2. // we store here username, database and password
  3. include("db/db_config_jq.php");
  4.  
  5.  
  6. $page = $_REQUEST['page']; // get the requested page
  7. $limit = $_REQUEST['rows']; // get how many rows we want to have into the grid
  8. $sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort
  9. $sord = $_REQUEST['sord']; // get the direction
  10. if(!$sidx) $sidx =1;
  11.  
  12. $totalrows = isset($_REQUEST['totalrows']) ? $_REQUEST['totalrows']: false;
  13. if($totalrows) {
  14. $limit = $totalrows;
  15. }
  16.  
  17.  
  18. // connect to the database
  19. $db = mysql_pconnect($dbhost, $dbuser, $dbpassword)
  20. or die("Connection Error: " . mysql_error());
  21.  
  22. mysql_select_db($database) or die("Error conecting to db.");
  23.  
  24. mysql_query("SET NAMES utf8");
  25. mysql_query("SET CHARACTER SET utf8");
  26. mysql_query("SET collation_connection = utf8_unicode_ci");
  27.  
  28. //populateDBRandom();
  29. $result = mysql_query("SELECT COUNT(*) AS count FROM songs");
  30.  
  31.  
  32.  
  33. $row = mysql_fetch_array($result,MYSQL_ASSOC);
  34. $count = $row['count'];
  35.  
  36. if( $count >0 ) {
  37. $total_pages = ceil($count/$limit);
  38. } else {
  39. $total_pages = 0;
  40. }
  41. if ($page > $total_pages) $page=$total_pages;
  42. if ($limit<0) $limit = 0;
  43. $start = $limit*$page - $limit; // do not put $limit*($page - 1)
  44. if ($start<0) $start = 0;
  45.  
  46.  
  47. $SQL = "SELECT id, title, text, author, date, time, counter FROM songs ".$where." ORDER BY $sidx $sord LIMIT $start , $limit";
  48. $result = mysql_query( $SQL ) or die("Couldn?t execute query.".mysql_error());
  49. $responce->page = $page;
  50. $responce->total = $total_pages;
  51. $responce->records = $count;
  52. $i=0;
  53. while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
  54. $responce->rows[$i]['id']=$row[id];
  55. $responce->rows[$i]['cell']=array($row[id],$row[title],$row[text],$row[date],$row[time],$row[counter]);
  56. $i++;
  57. }
  58. echo json_encode($responce);
  59.  
  60. ?>
Go to the top of the page
+Quote Post
d3ut3r
post
Post #14





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Od wersji 3.7 jqGrid wprowadził parametr rowTotal jeżeli w swoim kodzie JS ustawiasz ten parametr wówczas skrypt wczytuje tyle rekordów ile ustawiłeś w tej zmiennej a dalsze operacje sortowania itd wykonuje po stronie użytkownika sprawdź czy nie ustawiasz tego parametru jeżeli tak to usuń to ustawienie wówczas każda operacja sortowania będzie wysyłała kolejne zapytanie do serwera. Nie widząc twojego kodu JS nie mogę stwierdzić czy to to ale może tak być.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
Ardziej
post
Post #15





Grupa: Zarejestrowani
Postów: 64
Pomógł: 1
Dołączył: 5.05.2009

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


Cytat(d3ut3r @ 28.01.2011, 02:05:46 ) *
Od wersji 3.7 jqGrid wprowadził parametr rowTotal jeżeli w swoim kodzie JS ustawiasz ten parametr wówczas skrypt wczytuje tyle rekordów ile ustawiłeś w tej zmiennej a dalsze operacje sortowania itd wykonuje po stronie użytkownika sprawdź czy nie ustawiasz tego parametru jeżeli tak to usuń to ustawienie wówczas każda operacja sortowania będzie wysyłała kolejne zapytanie do serwera. Nie widząc twojego kodu JS nie mogę stwierdzić czy to to ale może tak być.

Witaj, sprawdziłem w kodzie JS i mam:
  1. rowTotal:null

Usunięcie, zmiana z null na 0 też nie pomaga smile.gif
Dzięki za jakąś wskazówkę jednak to nic nie pomogło.
Tworzę sobie od nowa przykład w JqGrid i jest OKEJ, narazie przerzucę się na JqGrid z XML bo tak działa okej, dzięki za pomoc.
Ale ciekawi mnie czemu JSON coś tu krzaczy smile.gif
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 Aktualny czas: 19.08.2025 - 11:45