|
|
|
| Есть таблица со словарем Даля.
Структура
id | slovo | description
id - primary key
slovo - слово
description - описание
Всего слов около 44000 слов.
Ошибка возникает при запросе
SELECT * FROM s_dal WHERE slovo = 'папа' LIMIT 0 , 30
он выводит результат
id slovo description
15509 Мама ж. маменька, мамонька, -мочка, матушка, родитель...
15524 Мана см. манить.
24478 Папа м. греч. отец, произн. с франц. Папа; папенька, па...
Из-за чего возникла такая проблема? Как с ней бороться?
Заранее ОГРОМНОЕ спасибо! | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 19:27)
| | а если воспользоваться полнотекстовым поиском?
SELECT * FROM s_dal WHERE MATCH (slovo) AGAINST ("папа") LIMIT 0 , 30
поле slovo должно быть индексом fulltext | |
|
|
|
|
|
|
|
для: elenaki
(13.03.2006 в 19:37)
| | Еще хуже
15509 Мама ж. маменька, мамонька, -мочка, матушка, родитель...
15524 Мана см. манить.
17904 Наначни нареч. пск. твер. напочин, напочине, в начале, спо...
24478 Папа м. греч. отец, произн. с франц. Папа; папенька, па...
17760 Намачивать намочить и пр. см. намакивать.
18044 Напачкать где чем, намарать, намазать, нагадить, нагрязни...
20911 Обмачивать обмочить что, мочить кругом, или во многих ...
20912 Обмачтовывать обмачовать судно, поставить в него мачты и укре...
21002 Обначаловать что, арх. почать, слелать по(за, на)чин, положить... | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 19:40)
| | Перестроить индекс не пробовали? | |
|
|
|
|
|
|
|
для: Trianon
(13.03.2006 в 19:44)
| | Как это сделать? | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 19:49)
| | Уничтожить индекс и создать по новой, а лучше воспользоваться оператором REPAIR TABLE. | |
|
|
|
|
|
|
|
для: cheops
(13.03.2006 в 20:11)
| | Не помогает. | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 20:20)
| | а какое-нибудь другое слово?
:)
кодировка какая у базы?
сортировку русских слов нормально делает? | |
|
|
|
|
|
|
|
для: elenaki
(13.03.2006 в 20:26)
| | Кодировки нет это 4-ая версия
Остальные слова тоже с ошибками. Я вводил нам он находит вам или что-то в этом роде. | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 20:28)
| | как это нет кодировки? у меня 3-я и есть. у всех баз есть какая-то кодировка, с которой их установили... | |
|
|
|
|
|
|
|
для: elenaki
(13.03.2006 в 20:33)
| | По-моему какая-то latin, но как ее посмотреть не знаю. | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 20:42)
| | выполните это код (файл info.php)
и ищите раздел MySQL | |
|
|
|
|
|
|
|
для: elenaki
(13.03.2006 в 20:59)
| | Вот все настройки
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.57
Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 21:15)
| | создала подобную таблицу, внесла несколько значений на русском, по поиску на самом деле находит совершенно не то, что ищется... причем и по строгому соответствию и по LIKE и по Match against. :(
загадка природы. есть подозрение, что с кодировкой latin вам не удастся корректно извлечь данные на русском языке. | |
|
|
|
|
|
|
|
для: elenaki
(13.03.2006 в 21:49)
| | А если на хостинге такие проблемы возникнут, то что можно будет сделать? | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 21:57)
| | можно как-то менять кодировку на лету перед исполнением запроса... у меня это никогда не получалось :( | |
|
|
|
|
|
|
|
для: elenaki
(13.03.2006 в 21:59)
| | Спасибо тебе, elenaki.
Святила форума, может Вы что посоветуете? | |
|
|
|
|
|
|
|
для: Ziq
(13.03.2006 в 22:27)
| | вот, что oтвечали свЕтила форума раньше:
Возможно, не установлены параметры кодировки для соединения с БД.
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
автор: cheops (12.03.2006 в 19:31)
Кстати, в MySQL вместо этих трёх запросов оказывается можно использовать один
mysql_query("SET NAMES 'cp1251'");
|
| |
|
|
|