Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Sortowanie zapytania UTF-8
lukko
post 25.02.2010, 14:10:06
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Witam,

  1. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
  2. $wynik1 = mysql_query("SELECT id, nazwa FROM Mapa ORDER BY nazwa ASC");
  3. }


Kodowanie w utf 8 i zawsze mam na pierwszym miejscu Żuromin smile.gif dalej lecą prawidłowo nazwy miast bo oczywiście na początku pozostałych miast nie występuje polska litera. Ale jak z tym sortowaniem se poradzić ? Coś tam czytałem i próbowałem z COLLATE ale nie doszedłem do jakiegoś zadowalającego rezultatu smile.gif
Go to the top of the page
+Quote Post
nospor
post 25.02.2010, 14:11:26
Post #2





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




masz zapewne ustawione COLLATION na utf8_general_ci a musisz ustawic na utf8_polish_ci


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

"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
lukko
post 25.02.2010, 14:46:50
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Nie no mam utf8_polish_ci a sortuje mi tak jak wyżej napisałem :/
Go to the top of the page
+Quote Post
nospor
post 25.02.2010, 14:49:49
Post #4





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




a masz napewno na tej kolumnie na ktorej sortujesz czy moze tylko na tabeli?


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

"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
lukko
post 26.02.2010, 14:25:32
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Baza
  1. CREATE TABLE IF NOT EXISTS `Mapa` (
  2. `id` int(11) NOT NULL,
  3. `nazwa` longtext collate utf8_polish_ci NOT NULL,
  4. KEY `id` (`id`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


I co jest nie teges?


Zapytanie:
  1. if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
  2. $wynik1 = mysql_query("SELECT id, nazwa FROM Mapa ORDER BY nazwa ASC");
  3. }


Kodowanie strony:
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Go to the top of the page
+Quote Post
lord_t
post 26.02.2010, 14:27:27
Post #6





Grupa: Zarejestrowani
Postów: 603
Pomógł: 131
Dołączył: 24.07.2007
Skąd: Górny Śląsk

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


Może spróbuj dodać zaraz po połączeniu z bazą zapytanie:
Kod
set names utf8


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.02.2010, 14:33:21
Post #7





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




a tak z innej beczki:
`nazwa` longtext
czy nazwa to naprawdę musi byc LONGTEXT? Zwykly varchar nie wystarczy?


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

"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
lukko
post 26.02.2010, 14:44:54
Post #8





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 12.03.2009

Ostrzeżenie: (10%)
X----


Na stronie polskie znaki mam OK, tylko sortowanie :/


W bazie z poziomu phpmyadmina mam krzaki i pewnie tu ten zonk snitch.gif ale jak to ogarnąć ?


btw. pewnie varchar 32 wystarczy... ;]
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: 25.07.2025 - 00:08