Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Импорт прайс-листа из CSV-файла в базу данных: как автоматически определять категорию товара?
 
 автор: xpom   (20.03.2011 в 16:15)   письмо автору
 
 

Подскажите, пожалуйста, есть CSV прайс с полями: первое: Тип товара, второе: Производитель(бренд), третье: Наименование товара...это я так понимаю схема CSV прайса у всех одна! Мне нужно импортировать в базу этот CSV прайс и так чтобы например тип товара, например стиральная машина, попал в категорию Бытовая техника, а например материнская плата, в категорию Компьютерная техника...а таблица с категориями, типа id и название категории! Как можно можно распределить по категориям товары, не меняя структуру CSV прайса?

  Ответить  
 
 автор: cheops   (20.03.2011 в 16:25)   письмо автору
 
   для: xpom   (20.03.2011 в 16:15)
 

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

  Ответить  
 
 автор: xpom   (20.03.2011 в 16:37)   письмо автору
 
   для: cheops   (20.03.2011 в 16:25)
 

а что это за правила?
Сделать отдельную таблицу с наименованиям товаров и категориями? Все ж наименования не напишешь в таблице..возможно новое и все...не добавится в нужную категорию..так не подойдет...
а с правилами я даже не знаю как это(

  Ответить  
 
 автор: cheops   (20.03.2011 в 16:43)   письмо автору
 
   для: xpom   (20.03.2011 в 16:37)
 

В общем да сравнивать категории... а формат CSV жестко задан? Нет там поблизости какого-нибудь XML-формата Yandex в качестве альтернативы? В нем-то это удобно сделано, он требует, чтобы в XML-файле была отражена структура каталога, тогда можно автоматически искать соответствия, а там где соответствия нет - предлагать оператору их назначить... Мы в свое время решали эту задачу для одного проекта.

  Ответить  
 
 автор: xpom   (20.03.2011 в 16:59)   письмо автору
 
   для: cheops   (20.03.2011 в 16:43)
 

Т.е. там каждый столбец соответствует структуре каталога?
Нет CSV задан не жестко! Это только создаю тоже на подобии проекта, что Вы разрабатывали, только со своими нюансами...а не знаете где можно пример xml формата взять? Т.е. я так понял все опираются на Яндекс!
а сколько будет стоит заказать у Вас такой проект? В простом виде

  Ответить  
 
 автор: cheops   (20.03.2011 в 17:16)   письмо автору
 
   для: xpom   (20.03.2011 в 16:59)
 

>Т.е. там каждый столбец соответствует структуре каталога?
Там описан каталог в каком то таком варианте
...
    <categories>
      ...
      <category id="14044">Ноутбуки</category>
      <category id="15106" parentId="14044">Toshiba</category>
      <category id="14043" parentId="14044">Acer</category>
      <category id="15983" parentId="14044">Apple</category>
      <category id="14050" parentId="14044">Asus</category>
      <category id="18543" parentId="14044">BenQ</category>
      ...
    </categories>
...
А потом каждому товару назначается свой category_id из этого дерева.

>Т.е. я так понял все опираются на Яндекс!
Все, кого вы видите в market.yandex имеют такие XML-файлы, уже созданные и готовые к разбору.

>а сколько будет стоит заказать у Вас такой проект? В простом виде
Собственно вы можете обратиться либо в наш консультационный центр и мы просто подробно опишем как тут поступить и приложим ключевой код. Или если объема ответа будет не достаточно, администратор порекомендует вам обратиться на softtime@softtime.ru с заказом блока/блоков (это зависит уже от оценки того, что вы заказываете студии). Собственно, вы можете написать на consult@softtime.info сославшись на эту тему, подробно описать, что хотите и администратор вам ответит.

  Ответить  
 
 автор: xpom   (20.03.2011 в 17:34)   письмо автору
 
   для: cheops   (20.03.2011 в 17:16)
 

ясненько..ну структура мне не обязательна...мне главное отыскать категорию..а остальные поля мы выберем вручную, при импорте

  Ответить  
 
 автор: xpom   (21.03.2011 в 16:14)   письмо автору
 
   для: cheops   (20.03.2011 в 17:16)
 

а что вот эти id="15106" parentId="14044"за id? Их кто назначает? Сами магазины?

  Ответить  
 
 автор: cheops   (21.03.2011 в 16:18)   письмо автору
 
   для: xpom   (21.03.2011 в 16:14)
 

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

Т.е. такая мини-база данных внутри файла, которая отражает реальные связи в базе данных.

  Ответить  
 
 автор: xpom   (21.03.2011 в 17:25)   письмо автору
 
   для: cheops   (21.03.2011 в 16:18)
 

А где же создается такой xml файл со связями внутри?
Ведь excel создает без id. Вот такой например:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Row>
<Column1>Стиральные машины</Column1>
<Column3>наименование</Column3>
<Column4>цена</Column4>
<Column5>описание/Column5>
</Row>

</Root>

  Ответить  
 
 автор: cheops   (21.03.2011 в 17:34)   письмо автору
 
   для: xpom   (21.03.2011 в 17:25)
 

Такой файл создается, как правило, серверным скриптом. Ведь в яндекс-маркете представлены интернет-магазины, т.е. компании у которых имеется интернет-магазин или как минимум интернет-каталог, а следовательно и база данных на сайте. Вот эта база данных и находит отражение в XML-файле.

  Ответить  
 
 автор: xpom   (21.03.2011 в 17:56)   письмо автору
 
   для: cheops   (21.03.2011 в 17:34)
 

следовательно, такой xml- файл с id доступен не всем владельцам интернет-магазинов, не у всех есть такой скрипт, который создает такое! CSV файл наверное с большим кругом интернет-магазинов, в нем можно создать скрипт выбирая только нужные колонки, не так ли? ведь сравнение в базе по товарам идет по полю наименованию?

  Ответить  
 
 автор: cheops   (21.03.2011 в 18:18)   письмо автору
 
   для: xpom   (21.03.2011 в 17:56)
 

Нет не у всех, но у многих.

>CSV файл наверное с большим кругом интернет-магазинов
А зачем им такой файл вообще создавать? XML-файл понятно зачем создается - иначе в маркет-яндекс не попадешь.

  Ответить  
 
 автор: xpom   (21.03.2011 в 18:30)   письмо автору
 
   для: cheops   (21.03.2011 в 18:18)
 

Яндекс принимает только XML-файл?

  Ответить  
 
 автор: cheops   (21.03.2011 в 18:37)   письмо автору
 
   для: xpom   (21.03.2011 в 18:30)
 

Да XML-файл своего собственного формата, под который заточен его анализатор прайс-листов. Все, кто хочет попасть в yandex.market создают этот файл.

  Ответить  
 
 автор: xpom   (21.03.2011 в 19:16)   письмо автору
 
   для: cheops   (21.03.2011 в 18:37)
 

Есть отличие в разборе XML-файл Яндекса и другого обычного XML-файл?

  Ответить  
 
 автор: cheops   (21.03.2011 в 19:22)   письмо автору
 
   для: xpom   (21.03.2011 в 19:16)
 

В общем нет... но XML-файлы существующих магазинов могут быть очень большими, нам встречались объемы до 160Мб, т.е. не любой парсер подойдет.

  Ответить  
 
 автор: xpom   (21.03.2011 в 19:30)   письмо автору
 
   для: cheops   (21.03.2011 в 19:22)
 

будет грузить память?

  Ответить  
 
 автор: cheops   (21.03.2011 в 20:06)   письмо автору
 
   для: xpom   (21.03.2011 в 19:30)
 

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

  Ответить  
 
 автор: xpom   (21.03.2011 в 20:14)   письмо автору
 
   для: cheops   (21.03.2011 в 20:06)
 

тогда время нужно растянуть

  Ответить  
 
 автор: xpom   (21.03.2011 в 21:20)   письмо автору
 
   для: cheops   (21.03.2011 в 20:06)
 

А с каким модулем пишут парсер для таких больших XML-файлов, с SAX или DOM?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования