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]   

> Без описания
Andruxa
Отправлено: 25 Июня, 2013 - 19:48:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010  


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




Думаю задача детская, но не получается ее решить .
Суть в следующем.
У меня в базе есть поле в котором хранится фамилия имя отчество( Иванов Иван Иванович)
Задача: Вывести запись в виде: Иванов И. И

Пытался сделать так:
PHP:
скопировать код в буфер обмена
  1.  while($rez=mysql_fetch_array($sql)){
  2.   $rez=mysql_fetch_array($sql);
  3.   $array=explode(" ", $rez['kto_dobavil']);
  4.   echo $array[0] .". ".$array[1]{0};
  5. }
  6.  


Результат есть, но первую букву имени почему то выводит в виде квадратика.
Помогите решить эту проблему.

(Отредактировано автором: 25 Июня, 2013 - 19:49:03)

 
 Top
AlexAnder
Отправлено: 25 Июня, 2013 - 19:54:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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




Цитата:
в виде квадратика

потомучто кириллица?
?


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Мелкий Супермодератор
Отправлено: 25 Июня, 2013 - 19:55:55
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Обращение к строке как к массиву оперирует байтами.
UTF8 - многобайтная кодировка, в частности, кириллица кодируется двумя байтами.
Если у вас оторвать голову - ничего ведь хорошего не получится, правда? Вот если и от символа оторвать половину - ничего хорошего не выйдет.

Используйте функции mb_ и, в частности, mb_substr


-----
PostgreSQL DBA
 
 Top
Andruxa
Отправлено: 25 Июня, 2013 - 20:02:07
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010  


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




AlexAnder пишет:
mb_substr(str, 0, 1);

Так тоже пробовал, эффект тот же.
Кстати, да! Попробовал имя переписать в базе латинскими буквами, все ОК.
Так как быть с кирилицей !?
 
 Top
AlexAnder
Отправлено: 25 Июня, 2013 - 20:08:31
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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






-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
vanicon
Отправлено: 25 Июня, 2013 - 20:08:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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






-----
Так было, так есть и так будет
 
 Top
AlexAnder
Отправлено: 25 Июня, 2013 - 20:09:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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






-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Мелкий Супермодератор
Отправлено: 25 Июня, 2013 - 20:11:42
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




Andruxa пишет:
Так тоже пробовал, эффект тот же.

Укажите 4-й параметр или глобально mb_internal_encoding

PS: ах тыж, какие вы быстрые Подмигивание


-----
PostgreSQL DBA
 
 Top
Andruxa
Отправлено: 25 Июня, 2013 - 20:18:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010  


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





Работает!!! Спасибо!

Цитата:
Укажите 4-й параметр или глобально mb_internal_encoding

Да, именно его я и упускал, спасибо!

Хотя рыл в этом направлеии, но я пытался сделать перекодировку строки, а не указать кодировку
 
 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