Opencart — ошибка Warning: mysqli::query(): (21000/1242): Subquery returns more than 1 row in

opencart

И всем снова привет, решил еще написать как победить ошибку которая у меня возникла при работе с сайтом на Opencart по светодиодному освещению Арлайт моего клиента, данная ошибка у меня возникла когда я решил зайти и отредактировать категории и при заходе получал белый экран и ошибку:

Warning: mysqli::query(): (21000/1242): Subquery returns more than 1 row in 
/public_html/system/library/db/mysqli.php on line 18

если посмотреть в лог на сервере то увидим такую картину (как включить лог на ошибки читайте мою прошлую статью)

[12-Nov-2017 22:57:38 Europe/Moscow] PHP Fatal error:  
Uncaught exception 'Exception' with message 'Error: Subquery returns more than 1 row<br />
Error No: 1242<br />SELECT DISTINCT *, 
(SELECT GROUP_CONCAT(cd1.name ORDER BY level SEPARATOR '&nbsp;&nbsp;&gt;&nbsp;&nbsp;') 
FROM oc_category_path cp LEFT JOIN oc_category_description cd1
ON (cp.path_id = cd1.category_id AND cp.category_id != cp.path_id) 
WHERE cp.category_id = c.category_id AND cd1.language_id = '1' GROUP BY cp.category_id) AS path, 
(SELECT DISTINCT keyword FROM oc_url_alias WHERE query = 'category_id=2') 
AS keyword FROM oc_category c LEFT JOIN oc_category_description cd2 
ON (c.category_id = cd2.category_id) 
WHERE c.category_id = '2' AND cd2.language_id = '1'' in /public_html/system/library/db/mysqli.php:40
Stack trace:

В итоге эту ошибку можно победить след образом:

  1. Открыть phpMyAdmin
  2. найти таблицу  oc_url_alias
  3. почистить значения

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

ИТОГ: зайти в таблицу  oc_url_alias и удалить явно ненужные значения

После этого все завелось с пол оборота )

Надеюсь моя статья Вам помогла!

nibbl
Оцените автора
NIBBL
Добавить комментарий

  1. Влад

    Огромное спасибо !!!!

    Ответить
  2. Radovan

    Velika hvala !

    Ответить
  3. Владимир

    Спасибо дружище!

    Кажется это та самая проблема с которой я боролся давно и не мог понять откуда оно прет.

    Ответить