Някой за отстраняване на проблем - опънкарт

white_pawn

Well-Known Member
Рейтинг - 100%
11   0   0
Когато отворя някой продукт всичко е ОК, до момента в който реша да редактирам нещо - заглавие, цена, количество... след това започва да вади празна страница и следното в error log-а:

PHP:
2013-11-08 2:20:04 - PHP Warning:  mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Unable to save result set in /home/user123/public_html/user123.com/system/database/mysql.php on line 21
2013-11-08 2:20:04 - PHP Notice:  Error: Subquery returns more than 1 row<br />Error No: 1242<br />SELECT DISTINCT *, (SELECT keyword FROM url_alias WHERE query = 'product_id=577') AS keyword FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '577' AND pd.language_id = '2' in /home/user123/public_html/user123.com/system/database/mysql.php on line 49
 
От: Някой за отстраняване на проблем - опънкарт

Здравей,
Проблемът е, че няма параметър за езика в подзаявката, която вади ключовите думи за даден продукт. Ако сайта е едноезичен проблемът не се проявява.
Заявката се намира в admin/model/catalog/product.php около ред 302 (поне в моята версия).
Трябва да се замени с:
Код:
"SELECT DISTINCT *, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'product_id=" . (int)$product_id . "' AND language_id = pd.language_id LIMIT 1) AS keyword
FROM " . DB_PREFIX . "product p 
LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) 
WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'"
Подобни заявки, които също могат да гръмнат в даден момент има и в:
admin/model/catalog/manufacturer.php
admin/model/catalog/information.php
admin/model/catalog/category.php
Още информация по темата:
http://forum.opencart.com/viewtopic.php?t=110759
Поздрави,
Константин.
 

Горе