Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с поиском в базе MySQL
 
 автор: icamys   (25.03.2012 в 16:34)   письмо автору
 
 

Есть база данных и сайт, извлекающий из него информацию. Вся база данных и таблицы в ней, сравниваются с utf8_general_ci. Все строки этих таблиц также сравниваются с utf8_general_ci. Все файлы на сайте в кодировке UTF-8 без BOM, и практически в каждой страничке есть метатег с указанием кодировки UTF-8. База данных хранит в себе данные и на латинице, и на кириллице. При подключении к БД с сайта сразу прописываю:

mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');


Затем, произвожу поиск по ключевому слову $keywd:

$db = @mysql_connect('localhost','USER','PASSWORD') or die("Подключение к MySQL-серверу не удалось!");
mysql_query('SET NAMES utf8');
mysql_query('SET CHARACTER SET utf8');
mysql_select_db('DATABASE',$db);
$res = @mysql_query("SELECT *
FROM `DATABASE`.`TABLE`
WHERE category='$cat_en' and request='$req_en'
and(`lot` LIKE '%$keywd%');


Проблема заключается в том, что когда я ввожу слово на латинице, его в БД находит, а когда ввожу слово на кириллице, результатов поиска нет. Подскажите пожалуйста, в чем может быть проблема?

Добавил:
Переменные сервера хостинга:

character set client utf8
(Глобальное значение) latin1
character set connection utf8
(Глобальное значение) latin1
character set database latin1
character set filesystem binary
character set results utf8
(Глобальное значение) latin1
character set server latin1
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_general_ci
(Глобальное значение) latin1_swedish_ci
collation database latin1_swedish_ci
collation server latin1_swedish_ci

  Ответить  
 
 автор: Роккер Руслан   (26.03.2012 в 10:02)   письмо автору
 
   для: icamys   (25.03.2012 в 16:34)
 

попробуй в файле .htaccess прописать
AddDefaultCharset UTF-8

  Ответить  
 
 автор: icamys   (26.03.2012 в 22:56)   письмо автору
 
   для: Роккер Руслан   (26.03.2012 в 10:02)
 

Прописал... Не помогло...

  Ответить  
 
 автор: Valick   (27.03.2012 в 07:32)   письмо автору
 
   для: icamys   (25.03.2012 в 16:34)
 

сам файл скрипта в какой кодировке? UTF8 без BOM?
каким редактором пользуетесь для написания кода?

  Ответить  
 
 автор: icamys   (27.03.2012 в 13:46)   письмо автору
31.2 Кб
 
   для: Valick   (27.03.2012 в 07:32)
 

Абсолютно все файлы в UTF8 без BOM. Использую PHP Designer и Notepad++.
Прикрепил пару скринов для наглядности. Если нужны еще какие-то данные для решения проблемы, пожалуйста, скажите. Меня эта проблема поставила в тупик, и я думаю - может стоит перевести всю БД в cp1251?

  Ответить  
 
 автор: icamys   (27.03.2012 в 13:46)   письмо автору
21.4 Кб
 
   для: icamys   (27.03.2012 в 13:46)
 

второй скрин

  Ответить  
 
 автор: icamys   (27.03.2012 в 13:47)   письмо автору
53.8 Кб
 
   для: icamys   (27.03.2012 в 13:46)
 

третий скрин

  Ответить  
 
 автор: icamys   (27.03.2012 в 13:50)   письмо автору
 
   для: icamys   (27.03.2012 в 13:46)
 

может дело в типе таблиц? (скрин 2)

  Ответить  
 
 автор: icamys   (27.03.2012 в 13:54)   письмо автору
21.4 Кб
 
   для: icamys   (27.03.2012 в 13:46)
 

еще я заметил, что если проводить поиск в самой БД, таким образом, как на прикрепленном скрине (скрин 4), то результатов поиска не будет.

  Ответить  
 
 автор: icamys   (27.03.2012 в 13:55)   письмо автору
17.8 Кб
 
   для: icamys   (27.03.2012 в 13:46)
 

А если провести поиск такми образом, как на этом скрине(скрин 5), то результат поиска есть.
(изменение: с оператора LIKE перешел на оператор LIKE %...% )

  Ответить  
 
 автор: icamys   (27.03.2012 в 18:09)   письмо автору
 
   для: icamys   (27.03.2012 в 13:46)
 

.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования