Чтение из .xls

Discussion in 'PHP' started by Naydav, 28 Apr 2007.

  1. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    PHP: Чтение из .xls, рационален ли метод?

    Нужно обновлять таблицу базы данных из формата XLS...

    Имееться прайс ,
    С этого прайса беруться цены для интернет-магазина и записываються в бд

    и что бы не вводить(обновлять бд вручную) через админку, нужно написать скрипт, который будет парсить этот файл в базу данных, есно заменяя старые и добавляя новые.

    У меня есть вариант решения, такой:

    сохранять файл в фрмате .csv, потом считывать его, например fopen()+explode(), и потом обрабатывать соответствующие елементы массива

    но как проверять новые элементы?
    т. е. брать определенный элемент(по имени) и сравнивать есть ли такой в полученных массивах?

    но если товаров(записей) например 1000, и в новом прайсе например позиций 100

    то каждый елемент, нужно сравнить с 1000 элементов уже присутствующих. а если елементов 100, то получаеться 100*1000 = 100 000 сравнений...

    возможен конечно вариант - LOAD DATA LOCAL INFILE, и использование временной таблицы в MySql
    ведь в бд действия быстрее будут обрабатываться...

    рационален ли этот метод?
    может кто-то сталкивался с подобной проблемой?
    что вы посоветуете?

    ps заранее благодарен!!!
     
    #1 Naydav, 28 Apr 2007
    Last edited: 28 Apr 2007
  2. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    $sql= "LOAD DATA LOW_PRIORITY INFILE './date.txt' REPLACE INTO TABLE csv FIELDS TERMINATED BY ';' one,two,three
    LINES TERMINATED BY '\n' STARTING BY ' ' ";

    Всб ночь не спал - голова не варит,
    что я не так делаю...
     
    #2 Naydav, 28 Apr 2007
    Last edited: 28 Apr 2007
  3. hidden

    hidden 7H3 0N3

    Joined:
    23 Apr 2006
    Messages:
    550
    Likes Received:
    332
    Reputations:
    386
    А откуда ты это взял? TERMINATED BY ';' one,two,three
    там же поля запятыми разделяются.

    Думаю что-то вроде:
     
  4. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    да точка-запятой разделяються