Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по выборке данных из БД

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Выборка данных по русским буквам
alogin
Отправлено: 29 Апреля, 2016 - 13:26:19
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Добрый день!

Столкнулся с проблемой выборки данных из БД при использовании запроса с русскими буквами.

есть БД test в кодировке utf8_general_ci
в ней таблица так же в кодировке utf8_general_ci

в таблице 2 столбца eng и rus в которых данные
eng rus
GGGG ГГГГГ
GGGG ГГГГ

и есть php код

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $dbname = 'test';
  4. $link = mysql_connect('localhost', 'root', 'password');
  5. mysql_select_db($dbname,$link);
  6.  
  7. if (!$link) {
  8.     echo 'Ошибка подключения к mysql';
  9.         }
  10.                
  11. $sql = "SELECT count(*) from `test` WHERE `eng` like 'ГГ%'";
  12. $res = mysql_query($sql) or die (mysql_error());
  13. $row = mysql_fetch_row($res);
  14. $k_el = $row[0];
  15. echo $k_el;
  16.  
  17. ?>
  18.  


При использовании sql запроса
SELECT count(*) from `test` WHERE `eng` like 'ГГ%'

Выдает: 0
При использовании запроса
SELECT count(*) from `test` WHERE `eng` like 'GG%'
Выдает 2, как и положено.

Т.е. не идет выборка по русским буквам из БД.

Если делать базу и таблицы в cp_1251_general_ci
то выдает ошибку
Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation 'like'

Проблема в кодировке, но как это исправить ?

(Отредактировано автором: 29 Апреля, 2016 - 13:32:02)

 
 Top
caballero
Отправлено: 29 Апреля, 2016 - 13:44:00
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




так надо и сортировку указать в cp1251_general_c

а лучше всего делать все в юникоде


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
alogin
Отправлено: 29 Апреля, 2016 - 15:19:35
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Апр. 2016  


Помог: 0 раз(а)




Не понял про сортировку ?
Нужно в sql запросе производить конвертацию в cp1251 ??
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB