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

Форум MySQL

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

 

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

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

тема: Из базы "вытягиваются" нечитаемые символы
 
 автор: SemenovOleg   (14.03.2009 в 16:46)   письмо автору
 
 

Пытаюсь из базы достать поля:

$db = mysql_connect ("localhost","alex","alex");
mysql_select_db ("firstdb",$db);
$result = mysql_query("SELECT * FROM firma", $db);
$myrow = mysql_fetch_array($result);
do
{
echo $myrow["name"].' - '.$myrow["dolgn"].' - такая должность <br>';
}
while ($myrow = mysql_fetch_array($result));


Выдает результат:
??????? - ???????? - такая должность
?????? - ??????????? - такая должность
????? - ??????? ??? - такая должность
?????? - ????????? ?????? ??? - такая должность

Установлен:
* Apache/2.2.11 (Win32) PHP/5.2.9
* Версия MySQL-клиента: 5.0.51a
Версия сервера: 5.0.77-community-nt
Версия протокола: 10
MySQL-кодировка: UTF-8 Unicode (utf8)

При экспорте, например, в XML, да и в базе данных все отлично читаемо.
Как разобраться с проблемой? Куда смотреть? ткните носом, плз...

  Ответить  
 
 автор: cheops   (14.03.2009 в 17:25)   письмо автору
 
   для: SemenovOleg   (14.03.2009 в 16:46)
 

>MySQL-кодировка: UTF-8 Unicode (utf8)
Это phpMyAdmin сообщает? Или у таблиц и данных в них кодировка utf8? Если таблицы снабжены кодировкой utf8, следует выполнить запрос SET NAMES utf8.
<?php
  $db 
mysql_connect ("localhost","alex","alex"); 
  
mysql_select_db ("firstdb",$db); 
  
mysql_query("SET NAMES utf8");
  
$result mysql_query("SELECT * FROM firma"$db); 
  
$myrow mysql_fetch_array($result); 
  do 
  { 
   echo 
$myrow["name"].' - '.$myrow["dolgn"].' - такая должность <br>'
  } 
  while (
$myrow mysql_fetch_array($result));
?>

Если кодировка отлична от utf8, следует использовать другое название в запросе SET NAMES.

PS Кстати, почему вы используете цикл с постусловием? У вас же первая строка из-за этого должна быть пустой. Может удобнее воспользоваться прямым циклом while()?

  Ответить  
 
 автор: SemenovOleg   (14.03.2009 в 17:55)   письмо автору
 
   для: cheops   (14.03.2009 в 17:25)
 

Сделал следующее:

<?php 
$db 
mysql_connect ("localhost","alex","alex");
mysql_select_db ("firstdb",$db);
mysql_query("SET NAMES utf8");

$result mysql_query("SELECT * FROM firma"$db);

while (
$myrow mysql_fetch_array($result))
{
echo 
$myrow['name'].' - '.$myrow['dolgn'].' - такая должность <br>';
}
?>


Результат:

Алексей - директор - такая должность
Андрей - заместитель - такая должность
Семен - инженер РџРўРћ - такая должность
Михаил - начальник отдела СЃР±С‹ - такая должность

Чую, что где-то в кодировках, буду искать, спасибо за подсказку.
Насчет постусловия - действительно, исправил...

  Ответить  
 
 автор: SemenovOleg   (14.03.2009 в 19:23)   письмо автору
 
   для: cheops   (14.03.2009 в 17:25)
 

При переходе на странице на кодировку utf-8 данные из базы исправились, но текст, написанный в dreamwiver-e выводится в виде ???:


<?php 
$db 
mysql_connect ("localhost","alex","alex");
mysql_select_db ("firstdb",$db);
mysql_query("SET NAMES utf8");

$result mysql_query("SELECT * FROM firma"$db);

while (
$myrow mysql_fetch_array($result))
{
echo 
$myrow['name'].' - Имя, на должности ';
echo 
$myrow['dolgn'].'   <br>';
}
?>


дает в результате

Алексей - &#65533;&#65533;&#65533;, &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; директор
Андрей - &#65533;&#65533;&#65533;, &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; заместитель
Семен - &#65533;&#65533;&#65533;, &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; инженер ПТО
Михаил - &#65533;&#65533;&#65533;, &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; начальник отдела сбы

Где настраивается кодировка самого dreamwiver? Версия 9.0, build 53.

  Ответить  
 
 автор: SemenovOleg   (14.03.2009 в 19:34)   письмо автору
 
   для: SemenovOleg   (14.03.2009 в 19:23)
 

Победил! Просто надо файл сохранить со свойством "форма приведенная к Юникоду", как декомпозиция совместимости. (правда, я сам не понял, что это такое, но работает... ;-)

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

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