[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Export *.xls проблема с кодировкой
novik_sasha
mysqld();
$query = "SELECT * FROM goods ORDER BY ID";
$result = mysql_query($query) or die ("Cannot select");

header("Content-type: application/vnd.ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=\"prices.xls\"");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0,pre-check=0");
header("Pragma: public");

print "<table>\r";
print "<tr><td><b>Код</b></td><td><b>Наименование</b></td><td><b>Видимость</b></td><td><b>Акция</b></td><td><b>Склад</b></td><td><b>Цена</b></td></tr>\r";
$x = 0;
while ($x < mysql_numrows($result)) {

$ID = mysql_result($result, $x, 'ID');
$Art = mysql_result($result, $x, 'Art');
$Head = mysql_result($result, $x, 'Head');
$Price = mysql_result($result, $x, 'Price');
$showsite = mysql_result($result, $x, 'showsite');
$Action = mysql_result($result, $x, 'Action');
$OnSklad = mysql_result($result, $x, 'OnSklad');
$P_Down = mysql_result($result, $x, 'P_Down');
$N_Price = mysql_result($result, $x, 'N_Price');
$Annotation = mysql_result($result, $x, 'Annotation');

print "<tr>\r";
print "<td>$Art</td>\r";
print "<td>$Head</td>\r";
print "<td>$showsite</td>\r";
print "<td>$Action</td>\r";
print "<td>$OnSklad</td>\r";
print "<td>$Price</td>\r";
print "</tr>\r";

$x++;
}
print "</table>\r";
mysql_close();


в файле показывает битую кодировку
кодировка БД utf8_general_ci
пробовал поменять в хэдэре header("Content-type: application/vnd.ms-excel; charset=windows-1251"); - всеравно в файле не светит кирилицу!

че делать? помогите!

user posted image



Спустя 5 минут, 40 секунд (9.12.2010 - 16:01) sharki написал(а):
При передачи данных в базу делай вот это еще

$OnSklad = mysql_result(iconv("windows-1251", "UTF-8", $result), $x, 'OnSklad');


в общем тебе надо поменять кодировку переменной, делается вот этой функцией

iconv("windows-1251", "UTF-8", $result)


$result - это переменная в которой нужно поменять кодировку
windows-1251 - с какой
UTF-8 - на какую

Спустя 14 минут, 34 секунды (9.12.2010 - 16:16) novik_sasha написал(а):
Цитата
При передачи данных в базу делай вот это еще

$OnSklad = mysql_result(iconv("windows-1251", "UTF-8", $result), $x, 'OnSklad');


так мне надо делать при записи в базу или при считывании????

вобщем не вышло! я даже делал отдельно для каждой переменной!
iconv("windows-1251", "UTF-8", $Head);

всеравно битая кодировка!
в *.csv экспортирует нормально, а в екселем проблема.

я даже кодировку самого файла export.php менял на utf-8 и на cp1251, - пофигу!

Спустя 3 минуты, 45 секунд (9.12.2010 - 16:19) sharki написал(а):
Так, давай разберемся,

При считывании с БД с UTF8, тебе надо внести эти данные в файл EXEL?
Или наоборот, прочесть с EXEL и записать в БД?

Спустя 54 секунды (9.12.2010 - 16:20) novik_sasha написал(а):
прочесть с базы и передать в эксель!

экспорт прайса типа!

Спустя 2 минуты, 6 секунд (9.12.2010 - 16:22) sharki написал(а):
Следовательно тебе надо изменить UTF8 на WINDOWS-1251
$Head = iconv("UTF-8", "windows-1251", $Head);

Спустя 5 минут, 6 секунд (9.12.2010 - 16:27) novik_sasha написал(а):
Цитата (sharki @ 9.12.2010 - 13:22)
Следовательно тебе надо изменить UTF8 на WINDOWS-1251
$Head = iconv("UTF-8", "windows-1251", $Head);

smile.gif))) он мне вааще выдал пустые строки где есть кириллица!

Спустя 2 минуты, 7 секунд (9.12.2010 - 16:30) sharki написал(а):
НУ я реализовывал это в файле с расширением CSV, возможно у тебя там не windows-1251 а другая например ANSI поэкспериментируй

Спустя 10 минут, 6 секунд (9.12.2010 - 16:40) novik_sasha написал(а):
Цитата (sharki @ 9.12.2010 - 13:30)
НУ я реализовывал это в файле с расширением CSV, возможно у тебя там не windows-1251 а другая например ANSI поэкспериментируй

та вот с CSV у меня то тоже проблем нет... мне XLS нужен....
вобщем поставил ANSI статический текст показывает нормально, а вот что из базы вытягивает, такое впечатление что у меня переменная $Head пропала:)))

user posted image

Спустя 1 минута, 31 секунда (9.12.2010 - 16:41) sharki написал(а):
Цитата
вобщем поставил ASCI статический текст показывает нормально,


Вооот, следовательно теперь копай БД и всё норм будет =))

Спустя 54 минуты, 24 секунды (9.12.2010 - 17:36) novik_sasha написал(а):
вобщем как решил проблему!
дабы не мозолить себе "муму" перевел всю базу с таблицами в сравнение cp1251

а при общем вызове БД добавил строку mysql_query("SET NAMES cp1251");

и все заработало:)))) правда кое что перезалить надо наново, но то не проблема, всеравно товар залит был тестовый!

фух кароче! за помощь sharki тебе тоже спасибо:)

Спустя 2 минуты, 31 секунда (9.12.2010 - 17:38) sharki написал(а):
Ну да это самый легкий вариант =)) а вдруг у тебя сайт будет на UTF8 т.к это стандарт уже, то что будешь делать )))

Спустя 8 минут, 1 секунда (9.12.2010 - 17:46) novik_sasha написал(а):
Цитата (sharki @ 9.12.2010 - 14:38)
Ну да это самый легкий вариант =)) а вдруг у тебя сайт будет на UTF8 т.к это стандарт уже, то что будешь делать )))

нее... магазин то у меня на русском весь:) utf мне не нужен:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.