Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с сортировкой, windows-1251 и order by = странные глюки 
:(
    Опции темы
VladimirX
Дата 5.9.2006, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.8.2006

Репутация: нет
Всего: нет



Здравствуйте.

Имеется таблица в БД (Mysql). В поле с именем fio хранятся фамилии имена и отчества некоторых пользователей, на русском языке в кодировке cp1251. Необходимо по запросу упорядочить эти ФИО по алфавиту. Делаю запрос 
select * from mytable order by fio;
Однако ничего не выходит, порядка не видно(некоторые фамилии на "Б" впереди "А" и т.д.)

Как осуществить задуманное? 
Спасибо.
PM MAIL   Вверх
Opik
Дата 6.9.2006, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 2
Всего: 55



Код

select * from mytable order by fio ASC;

PM MAIL Skype   Вверх
-=Ustas=-
Дата 6.9.2006, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



VladimirX, если сортировка нарушается при

Цитата(Opik @  6.9.2006,  01:25 Найти цитируемый пост)
select * from mytable order by fio ASC;


То нужно кодировку нужную базе задавать. Поищи, таких тем на форуме полно.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Vaulter
Дата 6.9.2006, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 3
Всего: 22



VladimirX, 
Код

@ $this->_query('SET NAMES cp1251');
@ $this->_query('SET COLLATION_CONNECTION=CP1251_GENERAL_CI');
@ $this->_query('SET CHARACTER_SET_CLIENT = cp1251');

исправлять на mysql_query не хотца. сами, сами... smile


--------------------
PM MAIL WWW ICQ   Вверх
VladimirX
  Дата 6.9.2006, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.8.2006

Репутация: нет
Всего: нет



Ребят, ну ситуация такая:

1) ASC не помогло

2) Исправил конфиг мускула: 
[mysqld]
default-character-set=cp1251
(вместо latin1) Перезагрузил сервер..

Вывод русский, но сортировки нет...

3)

Код

$this->_query('SET NAMES cp1251');
$this->_query('SET COLLATION_CONNECTION=CP1251_GENERAL_CI');
$this->_query('SET CHARACTER_SET_CLIENT = cp1251');


Подобные вещи приводят к появлению сплошных знаков вопроса вместо фамилий....

В списке переменных базы следующая информация:
Код

'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_results', 'utf8'
'character_set_server', 'cp1251'
'character_set_system', 'utf8'
'collation_connection', 'utf8_general_ci'
'collation_database', 'latin1_swedish_ci'
'collation_server', 'cp1251_general_ci'


Все фамилии ввожу стандартно, через форму браузера. Результат - или нет сортировки или знаки вопроса...
PM MAIL   Вверх
-=Ustas=-
Дата 7.9.2006, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



Цитата(VladimirX @  6.9.2006,  23:15 Найти цитируемый пост)
'character_set_client', 'utf8'
'character_set_connection', 'utf8'
'character_set_database', 'latin1'
'character_set_results', 'utf8'
'character_set_server', 'cp1251'
'character_set_system', 'utf8'
'collation_connection', 'utf8_general_ci'
'collation_database', 'latin1_swedish_ci'
'collation_server', 'cp1251_general_ci'


Жуть smile Версия мускула какая?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
VladimirX
Дата 7.9.2006, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.8.2006

Репутация: нет
Всего: нет



Версия 4.1.16 под win32
PM MAIL   Вверх
-=Ustas=-
Дата 7.9.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 17
Всего: 69



VladimirX, попробуй, мож получится:
Код

[client]
default-character-set=cp1251

[mysql]
default-character-set=cp1251

[mysqld]
default-character-set=cp1251
collation-server=cp1251_bin
collation_connection=cp1251_bin
collation_database=cp1251_bin




--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Aliance
Дата 18.11.2006, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



У меня 4.0 мускул, сортировка не совсем верная. Что поможет мне?
PM MAIL WWW ICQ Skype   Вверх
BossIT
Дата 19.11.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 19.11.2006

Репутация: нет
Всего: нет



// Переводим кодировку базы в нужный формат
<?
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
?>

А какой тип указан у поля "FIO"?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.