Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Здравствуйте!

В исходных данных имеем: таблица Mysql со Странами/Регионами/Городами, таблица Mysql с категориями и файл экселя с организациями.

Задача: написать скрипт для переноса в новую таблицу Mysql данных из Excel файла с учетом данных таблиц Страны/Регионы/Города и категорий.

Мне нужен сам скрипт, так как данные в таблице excel будут меняться. Формат останется.

Поясню. В файле Excel есть поля:

name - название компании.

categories - категории деятельности. Может быть одна или несколько.

city - город

address - улица дом

phone - телефон

url - сайт

hours - часы работы

features - другие данные в формате JSON

При переводе данных надо находить соответствие города из Excel в таблице городов и брать оттуда Id страны, id региона и id города.

Таким образом в новую таблицу заносим:

ID - порядковй номер (с единицы)

country - страна (1 для всех)

region - регион (его id берем из таблицы стран)

city - город (его id бурум из таблицы стран по названию из таблицы Excel)

razdel - раздел (в таблице Excel categories идут через точку с запятой. Берем первое значение и ищем соответствие с таблицей категорий MySQL. Если находим - заносим в новую таблицу ID. Если не находим берем второе значение(если есть) и ищем ему соответствие итд. Если ни одного не найдено пишем: 100)

comment - оставляем пустым

title - название компании (поле name их Excel)

name - оставляем пустым

telephone - phone

adress - address

adressdom - оставляем пустым

adresskor - оставляем пустым

adressstr - оставляем пустым

adressflat - оставляем пустым

url - url

email - оставляем пустым

period - оставляем пустым

aid - для всех устанавливаем 1

date - для первого текущую (формат: 0000-00-00 00:00:00), для второго минус час, для третьего минус 2 часа и тд

status - для всех ok

ip - оставляем пустым.

Создаем поле hours и заносим туда их Excel поле hours - часы работы

Это то, что есть на данный помент в новой базе. Остальное надо добавить (см ниже)

`ID` smallint(9) unsigned NOT NULL AUTO_INCREMENT,

`country` int(4) NOT NULL,

`region` int(4) NOT NULL,

`city` int(4) NOT NULL,

`razdel` int(4) NOT NULL,

`comment` text NOT NULL,

`title` text NOT NULL,

`name` varchar(100) NOT NULL,

`telephone` varchar(50) NOT NULL,

`adress` text NOT NULL,

`adressdom` text NOT NULL,

`adresskor` text NOT NULL,

`adressstr` text NOT NULL,

`adressflat` text NOT NULL,

`url` text NOT NULL,

`email` varchar(50) NOT NULL,

`period` varchar(4) NOT NULL,

`aid` int(9) NOT NULL,

`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

`status` varchar(15) NOT NULL,

`ip` varchar(30) NOT NULL,

PRIMARY KEY (`ID`)

Из поля features таблицы Excel вносим остальные данные по схеме (русский текст надо перевести из юникода в кирилицу):

Их этого:

{

type: "enum",

id: "car_brand",

name: "марка",

value: [

"Chevrolet Niva",

"ВАЗ"

],

values: [

"Chevrolet Niva",

"ВАЗ"

]

},

В новой базе mysql создаем поле enum_car_brand (если оно еще не было создано - нужна проверка) и заноси туда данные: Chevrolet Niva, ВАЗ

Из этого:

{

type: "bool",

id: "official_dealer",

name: "официальный дилер",

value: true

},

Создаем поле bool_official_dealer (если оно еще не было создано - нужна проверка) и заносим значение: true

{

type: "bool",

id: "wi_fi",

name: "wi-fi",

value: false

},

Из этого создаем поле bool_wi_fi (если оно еще не было создано - нужна проверка) и заносим значение: false

Дело в том, что не для всех строк в таблице Excel поле features заполнено. А где заполнено могут быть разные переменные.

Но все они сводятся к двум типам: type: "enum" и type: "bool". По id добвляем поле в базу добавляя к названию type (bool или enum). И в значение заносим данные из поля value без кавычек.

Вот еще пример:

{

type: "enum",

id: "auto_insurance_type",

value: [

"КАСКО/ОСАГО"

],

values: [

"КАСКО/ОСАГО"

]

},

Создаем Поле enum_auto_insurance_type заносим значение: КАСКО/ОСАГО

Если не найдено совпадения по городу - заносим эту строку из талицы Excel в отдельный файл - чтобы потом видно было что не прошло по городам.

Если не найдено ни одного совпадения по категориям - заносим эту строку из талицы Excel в отдельный файл, - чтобы было видно каких нет категорий в базе, но в присваиваем ID 100, как написано выше.

И еще в один файл заносим соответствия из поля features по id и name:

id: "wi_fi", name: "wi-fi",

id: "official_dealer", name: "официальный дилер",

Так как поле name в базу mysql не попадает.

Файлы приложил.

11 лет назад
mchuk
49 летГрузия
16 лет в сервисе
Был
год назад
Выбранный исполнитель
Andrey_Gr
Андрей 
43 годаУкраина
11 лет в сервисе
Был
10 лет назад
11 лет назад
$50
5 дней
Система требует писать отзыв под каждым проектом, но я не понимаю зачем. Ведь если это уже третье задание которое я доверяю Андрею - значит меня все устраивает.
четко ставит задачу, оплата в срок
  • Похожие заказы
  • $250

    Привет всем!)) Работаем с двумя бекэндами по API. Загружаем заказы с бекенда1 в таблицу и меняем статусы заказам с по POST запросам с бекенда2 Знания php, mysql, jquery умение работать с чужими api По фронтенду готова таблица для ...

    Закрыт
    11 лет назад
  • $500

    Требуется разработать на основе CMS Drupal сайт мебельной компании... Техническое задание прикреплено... Перед детальным обсуждением проекта жду приблизительные сроки и суммы... С выбранным специалистом в случае удачного окончания проекта возможно длительное сотрудничество.

    Закрыт
    11 лет назад
  • Нужно сделать php класс для работы с API Google Adwords (последней стабильной версии). Все предоставляемые гуглом методы должны быть отображены на соответствующие методы php. Класс должен представлять из себя сервис Symfony 2.2, пригодный для подключения ...

    Закрыт
    11 лет назад
  • Сделать экспорт элементов инфоблока в формате CSV. Разделитель знак: ¥ Помимо стандартных значений свойств (название, активность, теги и т.п.) файл экспорта должен содержать: 1. Комментарии пользователей к элементам инфоблока: дата, автор, текст комментария. 2. Ссылку ...

    Закрыт
    11 лет назад
  • Необходимо доработать сайт http://soft-show.com/ : 1. Увеличить размер фотографии товара в каталоге товаров (http://soft-show.com/catalog/office/ ) и написать где это задается, чтобы мы могли сами управлять размером фотографий 2. Добавить Тип цен ( Розничная ). 3. Скрыть отображение цен и возможность покупки ...

    Закрыт
    11 лет назад
  • Есть пример приложения с авторизацией на фреймворке Kohana через социальные сети https://github.com/biakaveron/sso-demo Необходимо добавить к текущему функционалу авторизацию/регистрацию через смс (сервис sms.ru). Нужен не "костыль", а именно интеграция в имеющийся функционал. Жду ваши предложения.

    Закрыт
    11 лет назад
  • $100

    Есть игровой сайт, движек написан на php с использованием фреймворка YII. Необходимо его немного доработать: - добавить интеркассу - сделать поддержку 3х баз (регистрация, отображение статистики) (в сайте есть возможность работы с 3 базами, нужно это все ...

    Закрыт
    11 лет назад
  • $100

    Взять самый распространенный форумный движек (php). Доработать его так что бы при регистрации игрока можно было из сосденей базы подтянуть игровой персонаж и пихнуть его под аватарку в форуме. Пример http://eu.battle.net/wow/ru/forum/topic/7338915682 Стилизовать форум под игру.

    Закрыт
    11 лет назад
  • $1800

    Нужен опытный бэк-энд разработчик для работы в команде разрабов. Проект ПО для Американских госпиталей. Русскоязычная команда. Работа на фулл-тайм с ежемесячной оплатой 54000р. Детали будут обсуждены в Skype. Требования(могут обсуждаться): - OOP in PHP - Design patterns - Yii framework - Yii components - ...

    Закрыт
    11 лет назад