Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Запрос к БД Opencart из модуля экспорта


Recommended Posts

Есть модуль экспорта, у него есть дополнительная опция вставки PHP вот справка:

 

Вставьте php, который будет выполнен при обработке каждой строки. Результат выполнения нужно присвоить переменной $result. Например, если нужно импортировать/экспортировать значение 52, в указанное выше поле базы данных, напишите: $result = 52;. В области видимости выполнения данного php доступны: переменная $num_row с номером, обрабатываемой строки (без учета первой строки с названиями колонок, если таковая присутствует в файле), переменная $result_xpath с результатом обработки xPath (если настраивался выше). А также доступны значения в колонках соответствующей строки. Данные значения будут находиться в переменной: ${'Название колонки'}. Вы также можете изменить значения в этих колонках. Например, если при обработке нужно присвоить значение 5 в колонке под называнием Количество соответствущей строки, напишите: ${'Количество'} = 5; Для работы с базой данный используйте стандартный объект db OpenCart. Например, для подучения содержимого таблицы товаров напишите: $products = $this->db->query("SELECT * FROM " . DB_PREFIX . "product");

 

Подскажите пожалуйста почему может не работать код

 $result= $this->db->query("SELECT `name` FROM `oc_product_description` WHERE `product_id`=8331 ");

 

Хотя вот этот проходит без ошибок, хотя результата исполнения я не вижу..  $result строковая переменная я так понимаю? как занести в нее значения запроса? А $products это что?

 $products= $this->db->query("SELECT `name` FROM `oc_product_description` WHERE `product_id`=8331 ");

 

 

Edited by SanchoS1
Link to comment
Share on other sites


вообще то по идее должно быть так

$result= $this->db->query("SELECT `name` FROM `oc_product_description` WHERE `product_id`=8331 ")->row;

  • +1 1
Link to comment
Share on other sites


А это почему может не работать подскажите пожалуйста

$result= $this->db->query("SELECT `product_id` FROM `oc_product` WHERE `model`=${'Код_товара'}")->row;

Link to comment
Share on other sites


скорее всего неправильный синтаксис вот этого ${'Код_товара'}

попробуйте так

$result= $this->db->query("SELECT `product_id` FROM `oc_product` WHERE `model`='" . ${'Код_товара'}. "'")->row;

  • +1 1
Link to comment
Share on other sites


Еще вопросик может существует какой то способ экранировать запятую в php, когда в поле встречается запятая, модуль выводит так

"Power bank Hoco J62 30000mah"," черный"

 а надо так

"Power bank Hoco J62 30000mah, черный"

может сможете подсказать какие то варианты решения этой проблемы

Link to comment
Share on other sites


вообще то так не должно быть по идее, надо смотреть в чем дело, это какая то проблема модуля.

самое оптимальное и безгеморное заменить , на -

"Power bank Hoco J62 30000mah - черный"

Link to comment
Share on other sites


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

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.