EXEL -> MySQL

Тема в разделе "PHP", создана пользователем pronax, 8 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. pronax

    pronax Постоялец

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

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

    Вложения:

  2. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Похоже на коды символов в западноевропейской кодировке ISO-8859-1. Попробуй перед добавлением в БД прогонять данные через iconv("ISO-8859-1","windows-1251",$data) к примеру.
     
    pronax нравится это.
  3. Wily

    Wily Создатель

    Регистр.:
    21 окт 2008
    Сообщения:
    33
    Симпатии:
    5
    Необходимо сохранить лист EXEL'я в .CSV формате (разделители запетые) и потом воспользоваться этим кодом...
    PHP:
    <?
    $FILE_OPEN fopen("base.csv""r");

    while (! 
    feof($FILE_OPEN)){
    $LINE fgets($FILE_OPEN4096);
    $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]')");
     
    pronax нравится это.
  4. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    saen в одном блоге написано:
    а вот куда это вставлять ума не приложу....

    Wily а если именно .xls нужен?!
     
  5. D@nil

    D@nil

    Регистр.:
    1 окт 2006
    Сообщения:
    338
    Симпатии:
    122
    Сюда:
    PHP:
    $LINE fgets($FILE_OPEN4096);
    $LINE iconv('UNICODELITTLE''cp1251'$LINE); 
    $ARRAY explode(";"$LINE);
     
  6. jID

    jID Постоялец

    Регистр.:
    12 фев 2008
    Сообщения:
    106
    Симпатии:
    31
    Ну намутил...
    Есть же в Мускуле:
    Код:
    LOAD DATA INFILE
    как раз .csv на входе...
     
  7. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    D@nil в каком файле это изменять?! прошёлся по всем файлам нету там такого
     
  8. D@nil

    D@nil

    Регистр.:
    1 окт 2006
    Сообщения:
    338
    Симпатии:
    122
  9. pronax

    pronax Постоялец

    Регистр.:
    21 сен 2008
    Сообщения:
    146
    Симпатии:
    10
    всё проблему я решил, в файле там, в файле includes.inc есть функция uc2html на 46-53 строках.

    нужно заменить на:
    вот и всё записывается в базу норм с кирилицей
     
Статус темы:
Закрыта.