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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Кодировка mysql 4.1. Поиск по таблице работает не правильно. 
:(
    Опции темы
tikitiki
Дата 7.12.2006, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Хотел бы в этом разделе спросить. В другом не отвечают.
Мне нужно чтобы в таблице mysql хранились русские и английские символы.
Как это решить? У меня mysql 4.1., php 5.1.4. Тестирую локально.
Все записи из таблицы выводит правильно. Но при поиске находит только русские слова,
английские не находит или выводит всё из таблицы.
Перепробовал наверное всё. Ничего не изменяется.
Я использую английский и русский язык для одних и тех же полей.
Если есть другие предложения-выслушаю.
Из phpMyadmin-2.8.2.4 информацию взял о моём сервере Mysql:
Код

Переменные и настройки сервера 

character set client utf8 
(Глобальное значение) latin1 
character set connection cp1251 
(Глобальное значение) latin1 
character set database latin1 
character set results utf8 
(Глобальное значение) latin1 
character set server latin1 
character set system utf8 
character sets dir C:\MySQL\share\charsets/ 
collation connection cp1251_general_ci 
(Глобальное значение) latin1_swedish_ci 
collation database latin1_swedish_ci 
collation server latin1_swedish_ci 


Я mysql устанавливал и таблицы определял с кодировкой cp1251_general_ci.
Но видимо не правильно. Выдаёт при выполнении скрипта сообщение, что кодировка соединения 
latin1_swedish_ci. Я команду ставил для вывода кодировки: 
Код

$conn = mysql_pconnect($host, $user, $pass) or die(mysql_error());
$charset = mysql_client_encoding($conn);
printf ("current character set is %s\n", $charset);


После этого было выдано сообщение при работе данного скрипта:
Код

current character set is latin1_swedish_ci.




Всё читал в инете и на форуме. 
Возможно это проблемы сервера Mysql версии 4.1, который у меня стоит. 
Делал как в документации написано по Mysql. Проблема не исчезает.
Результаты поиска так же как я выше писал выдаёт.
Может ещё какая-то информация от меня нужна?
PM   Вверх
tikitiki
Дата 7.12.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



P.S.БД создавал в phpMyadmin-2.8.2.4. 
Ответ нужен очень. Застрял с кодировкой.



--------------------
PM   Вверх
Kefir
Дата 7.12.2006, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Код

CREATE TABLE test(id int NOT NULL AUTO_INCREMENT PRIMARY KEY, word TEXT CHARACTER SET utf8);
INSERT INTO test values(null, 'тест');
INSERT INTO test values(null, 'рыба');
INSERT INTO test values(null, 'fish');

Код

SELECT * FROM test;

Код

+----+----------+
| id | word     |
+----+----------+
|  1 | тест | 
|  2 | рыба | 
|  3 | fish     | 
+----+----------+
3 rows in set (0.00 sec)


Код

SET NAMES utf8;
SELECT * FROM test WHERE word LIKE '%ры%';

Код

+----+----------+
| id | word     |
+----+----------+
|  2 | рыба | 
+----+----------+
1 row in set (0.00 sec)



Код

SET NAMES utf8;
SELECT * FROM test WHERE word LIKE '%fi%';

Код

+----+------+
| id | word |
+----+------+
|  3 | fish | 
+----+------+
1 row in set (0.00 sec)

PM MAIL WWW Skype   Вверх
tikitiki
Дата 7.12.2006, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Kefir, спасибо огромное за ответ. Наконец дождался. Никто не отвечал.
И второе спасибо за развёрнутость ответа.
Я понял, что ты мне хотел сказать. Сейчас попытаюсь применить.
Ещё раз спасибо!!! smile 


--------------------
PM   Вверх
Kefir
Дата 7.12.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



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


Опытный
**


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

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



Kefir, это невероятно. Я встроил твой код полностью прямо в свой скрипт,
но он не то делает. Я понимаю, что должен вроде бы работать с utf8.
Но при выводе всех записей таблицы выдаёт:
Код

Результаты поиска
тест
рыба
fish

При поиске английского содержимого находит, а при поиске русского-вообще пустой результат.
Единственное у меня сомнение, которое возникает-я не знаю как в php.ini устанавливать
default_charset. Этот параметр я насколько понимаю за кодировку по умолчанию отвечает.
Пробовал подставить значения "utf8", "utf-8", "utf_8" по очереди. Не помогает. Вообще у меня стояло: 
Код

default_charset =

INSERT выполнял в phpMyadmin.





--------------------
PM   Вверх
Kefir
Дата 8.12.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



tikitiki,  smile  попробуй просто View -> Character Encoding -> UTF8
(а это у тебя CP1251).
PM MAIL WWW Skype   Вверх
tikitiki
Дата 8.12.2006, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Kefir, 
Цитата(Kefir @  8.12.2006,  15:52 Найти цитируемый пост)
попробуй просто View -> Character Encoding -> UTF8

я дал маху и очень сильно!!!  И теперь похоже всё заработает.
Ещё пока вопросики вместо русских букв местами, но это видимо от старых
моих действий. Я имею ввиду на страницах текст остальной. Но видимо мне теперь
придётся текст на страницах переделать под кодировку utf8.
Думаю вопрос можно считать почти решённым. Благодарен невероятно.smile 



--------------------
PM   Вверх
Romikgy
Дата 8.12.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(tikitiki @  8.12.2006,  15:57 Найти цитируемый пост)
Благодарен невероятно

невидно !


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
tikitiki
Дата 9.12.2006, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Romikgy,
Цитата(Romikgy @  8.12.2006,  22:58 Найти цитируемый пост)
невидно ! 

Что ты имешь ввиду?



--------------------
PM   Вверх
tikitiki
Дата 9.12.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Romikgy, 
Цитата(Romikgy @  8.12.2006,  22:58 Найти цитируемый пост)
невидно ! 

Если ты имеешь ввиду повышение репутации, то уже сделал. Не знал просто как пользоваться этим.


--------------------
PM   Вверх
tikitiki
Дата 10.12.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Kefir @  8.12.2006,  15:52 Найти цитируемый пост)
попробуй просто View -> Character Encoding -> UTF8

С этим разобрался, но хотелось бы ещё чуть уточнить. Я ещё не проверял.
Но и не уверен как правильно делать. Если теперь у меня
текст отображается на странице как вопросики вместо русского(помимо данных
из бд) мне
нужно на каждой странице ставить кодировку командой
Код

SET NAMES utf8; 

И после ввести текст по-новой с данной кодировкой. Я так понимаю.
Это будет правильное решение?





--------------------
PM   Вверх
Kefir
Дата 10.12.2006, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



SET NAMES utf8; вводи каждый раз при коннекте к БД (один раз в начале). Насчёт ввода - наверное да, но для этоо вроде у мускула есть запросы для конвертации в утф, сам я не пользовался, но посмотри на всякий случай в мане.
PM MAIL WWW Skype   Вверх
tikitiki
Дата 10.12.2006, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Kefir, всё встало по полкам. Спасибо. 


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




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


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

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