EXEL -> MySQL

Статус
В этой теме нельзя размещать новые ответы.

pronax

Постоялец
Регистрация
20 Сен 2008
Сообщения
147
Реакции
10
Привет всем, собственно проблема такая, есть парсер из Exel в MySql(прикреплён ниже)
но у него есть проблема с кириллицей... в базу записывает:
&#1074&#1072&#1087&#1074&#1072&#1087&#1074&#1072&#
вместо русских букв....:confused:

кто может помочь?! или дать другой парсер...
 

Вложения

  • 31-20071217144027.rar
    29,1 KB · Просмотры: 10
Похоже на коды символов в западноевропейской кодировке ISO-8859-1. Попробуй перед добавлением в БД прогонять данные через iconv("ISO-8859-1","windows-1251",$data) к примеру.
 
Необходимо сохранить лист EXEL'я в .CSV формате (разделители запетые) и потом воспользоваться этим кодом...
PHP:
<?
$FILE_OPEN = fopen("base.csv", "r");

while (! feof($FILE_OPEN)){
$LINE = fgets($FILE_OPEN, 4096);
$ARRAY = explode(";", $LINE);
$DBCONNECT = mysql_connect("localhost", "root", "") or die ("<LI>ОШИБКА! NO CONNECT С БД...");
mysql_select_db("DBNAME",$DBCONNECT) or die ("<LI>ТОКОВОЙ БД НЕТ!");
mysql_query("INSERT INTO DBTABLE VALUES('$ARRAY[0]', '$ARRAY[1]', '$ARRAY[2]')");
}
mysql_close($DBCONNECT);
fclose($FILE_OPEN);
echo "CSV -> MySQL!";
?>

base.csv - это имя файла меняешь на свое...

строка -
PHP:
mysql_query("INSERT INTO DBTABLE VALUES('$ARRAY[0]', '$ARRAY[1]', '$ARRAY[2]')");
- зависит от количества столбцов в таблице... данный пример для 3 столбцов... для 5 столбцов ниже...
PHP:
mysql_query("INSERT INTO DBTABLE VALUES('$ARRAY[0]', '$ARRAY[1]', '$ARRAY[2]', '$ARRAY[3]', '$ARRAY[4]')");
 
saen в одном блоге написано:
перекодировать данные для каждой ячейки
iconv(’UNICODELITTLE’, ‘cp1251′, $str);
а вот куда это вставлять ума не приложу....

Wily а если именно .xls нужен?!
 
Сюда:
PHP:
$LINE = fgets($FILE_OPEN, 4096);
$LINE = iconv('UNICODELITTLE', 'cp1251', $LINE); 
$ARRAY = explode(";", $LINE);
 
Необходимо сохранить лист EXEL'я в .CSV формате (разделители запетые) и потом воспользоваться этим кодом...
PHP:
<?
$FILE_OPEN = fopen("base.csv", "r");
while (! feof($FILE_OPEN)){
$LINE = fgets($FILE_OPEN, 4096);
$ARRAY = explode(";", $LINE);
$DBCONNECT = mysql_connect("localhost", "root", "") or die ("<LI>ОШИБКА! NO CONNECT С БД...");
mysql_select_db("DBNAME",$DBCONNECT) or die ("<LI>ТОКОВОЙ БД НЕТ!");
mysql_query("INSERT INTO DBTABLE VALUES('$ARRAY[0]', '$ARRAY[1]', '$ARRAY[2]')");
}
mysql_close($DBCONNECT);
fclose($FILE_OPEN);
echo "CSV -> MySQL!";
?>
base.csv - это имя файла меняешь на свое...
строка -
PHP:
mysql_query("INSERT INTO DBTABLE VALUES('$ARRAY[0]', '$ARRAY[1]', '$ARRAY[2]')");
- зависит от количества столбцов в таблице... данный пример для 3 столбцов... для 5 столбцов ниже...
PHP:
mysql_query("INSERT INTO DBTABLE VALUES('$ARRAY[0]', '$ARRAY[1]', '$ARRAY[2]', '$ARRAY[3]', '$ARRAY[4]')");
Ну намутил...
Есть же в Мускуле:
Код:
LOAD DATA INFILE
как раз .csv на входе...
 
D@nil в каком файле это изменять?! прошёлся по всем файлам нету там такого
 
всё проблему я решил, в файле там, в файле includes.inc есть функция uc2html на 46-53 строках.

нужно заменить на:


вот и всё записывается в базу норм с кирилицей
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху