Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Люди добрые , помогите кто чем может. 

Надо обновлять базу магазина из предоставляемых csv. 

Самое простое что получилось это создаю таблицу и заполняю ее тупо стандартным mysql   -   Load data local infile  filename into table tablename ....... ignore 1 lines.

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

Как правильно создавать таблицу, исходя из заголовков CSV ? 

Наверняка сталкивались, а то велосипед изобретать нехота, а быстрое гугление не помогло. Заранее спасибо.

Надіслати
Поділитися на інших сайтах


Вообщем, сделал быстрей чем ждал ответа)).

  /*считываем файл*/
$lines=file(IMPORT_FILE)  ;

         /*формируем из первой строки список полей*/
$field_names = explode(';', $lines[0]);

     /*создаем запрос с коррекцией типов полей*/
$sql="CREATE TABLE IF NOT EXISTS ".IMPORT_TABLE." (";

      foreach($field_names as $field_name){
        if( in_array($field_name , array('Price','RMPrice'))){$sql.=$field_name." decimal(19, 2) DEFAULT NULL, ";continue; }
        if( $field_name == 'Novinka'){$sql .= $field_name ." bool DEFAULT NULL,";continue;}
        if( $field_name == 'Collection_ID'){$sql .= $field_name ." int(11) DEFAULT NULL,";continue;}
        $sql.=$field_name ." varchar(255) DEFAULT NULL,";

      }

      /*удаляю последнюю запятую*/
      $sql=substr($sql, 0,-1);
    /*завершаем запрос*/
      $sql.=")";

  /*   создаем таблицу    */
          $newtable = $conn->query( $sql );

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.