Автор Тема: Помогите создать таблицу товара  (Прочитано 175 раз)

25 Сентября 2015, 13:48:33
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день. Нужно создать таблицу товара со следующими данными о товаре: номер, название и полное описание. SQL запрос данные вытягивает криво: бьет слова и данные. Смотрите файл. Какие еще есть варианты сделать данную таблицу для сайта на 1.6? Хочу попробовать из копии баз данных сделать, нашел описания товара полное, но как быть с названиями и номером? В базе как я понял все информация по товарам сохранена по отдельности. Спасибо.
25 Сентября 2015, 14:35:42
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 2149
  • Репутация: +49/-4
  • Сообщество PrestaShop
    • Просмотр профиля
Какой sql запрос? Файл txt не нужен, нужно видеть sql запрос.
Номер, название и полное описание хранятся в таблицах
- ps_product
- ps_product_lang
25 Сентября 2015, 14:58:38
Ответ #2
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все. Отбой. Разобрался. Не нужно было делать экспорт в файл, нужно было кликнуть на запрос. Откроется страница с его результатом - уже с этой страницы копируем все в excel и готово.
25 Сентября 2015, 18:38:23
Ответ #3
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
SELECT p.id_product, p.active, pl.name, GROUP_CONCAT(DISTINCT(cl.name) SEPARATOR ",") as categories, p.price, p.id_tax_rules_group, p.wholesale_price, p.reference, p.supplier_reference, p.id_supplier, p.id_manufacturer, p.upc, p.ecotax, p.weight, p.quantity, pl.description_short, pl.description, pl.meta_title, pl.meta_keywords, pl.meta_description, pl.link_rewrite, pl.available_now, pl.available_later, p.available_for_order, p.date_add, p.show_price, p.online_only, p.condition, p.id_shop_default
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product)
LEFT JOIN ps_category_lang cl ON (cp.id_category = cl.id_category)
LEFT JOIN ps_category c ON (cp.id_category = c.id_category)
LEFT JOIN ps_product_tag pt ON (p.id_product = pt.id_product)
WHERE pl.id_lang = 1
AND cl.id_lang = 1
AND p.id_shop_default = 1
AND c.id_shop_default = 1
GROUP BY p.id_product
Использовал такой запрос но некоторые данные все равно криво достает.
25 Сентября 2015, 22:33:07
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 1187
  • Репутация: +28/-1
  • Сообщество PrestaShop
    • Просмотр профиля
SELECT p.id_product, pl.name, pl.description_short, pl.description
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
WHERE pl.id_lang = 1;
12 Октября 2015, 17:50:44
Ответ #5
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Снова я вопросом про таблицу товара: есть ли способ вытащить полное описание товара, но так чтобы форматирование текста описания товара полностью слетело? Нужно вытащить лишь текст да так, чтобы описание каждого товара было в одну строку. Спасибо.
12 Октября 2015, 19:39:48
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Где это хотите делать? В модуле?
12 Октября 2015, 19:41:41
Ответ #7
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Как угодно. Лишь бы на выходе получился файл, который можно переделать под таблицу excel.
12 Октября 2015, 19:58:34
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Если где угодно, то так
$description = Tools::getDescriptionClean($description);
12 Октября 2015, 20:05:33
Ответ #9
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я не понимаю вас, точнее где это можно использовать. Еще есть варианты?
12 Октября 2015, 20:11:47
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 20836
  • Репутация: +25276/-0
  • Prestashop - просто и эффективно
    • Просмотр профиля
Вариантов много. Чем не устраивает тот, что вам посоветывали?
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
12 Октября 2015, 20:13:44
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Я не понимаю вас, точнее где это можно использовать. Еще есть варианты?
Вы как и где получаете описание?
12 Октября 2015, 20:23:42
Ответ #12
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я не понимаю как использовать эту строку. Добавить в sql запрос или что? Сайт использует версию 1.5.

Я использую данный sql зпрос:
SELECT p.id_product, pl.name, pl.description_short, pl.description
FROM ps_product p
LEFT JOIN ps_product_lang pl ON (p.id_product = pl.id_product)
WHERE pl.id_lang = 1;

Но он сохраняет форматирование текста. Включая таблицы и т.д.
12 Октября 2015, 20:33:13
Ответ #13
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 85943
  • Репутация: +25399/-0
  • Сообщество PrestaShop
    • Просмотр профиля
С одним sql запросом этого сделать нельзя.
Нужно использовать функции php, для этого создать модуль или свой контроллер.
Можно использовать макросы в экселе, excel vba работа со строками
13 Октября 2015, 17:27:47
Ответ #14
  • Старожил
  • ****
  • Сообщений: 256
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можете объяснить подробно про контролеры и про то, как вытянуть необходимые данные? Спасибо.