Автор: Blackone Apr 4 2018, 9:58
приветствую люди добрые
давеча на сайте в админке при попытках редактировании каталога или товара выстреливает ошибка
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
Warning: mysql_query(): Unable to save result set in /home/yw1/tehkontrol.com/www/system/database/mysql.php on line 22Notice: Error: Subquery returns more than 1 row
Error No: 1242
SELECT DISTINCT *, (SELECT GROUP_CONCAT(cd1.name ORDER BY level SEPARATOR ' > ') 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 keyword FROM oc_url_alias WHERE query = 'category_id=64') AS keyword FROM oc_category c LEFT JOIN oc_category_description cd2 ON (c.category_id = cd2.category_id) WHERE c.category_id = '64' AND cd2.language_id = '1' in /home/yw1/tehkontrol.com/www/system/database/mysql.php on line 50
куда смотреть? прогер зажрался и своими силами пытаемся восстановить
Автор: yarnik Apr 4 2018, 10:43
(Blackone @ Apr 4 2018, 10:58)
![Перейти к цитате](style_images/0day[1]/message_quote_arrow.svg)
приветствую люди добрые
давеча на сайте в админке при попытках редактировании каталога или товара выстреливает ошибка
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
Warning: mysql_query(): Unable to save result set in /home/yw1/tehkontrol.com/www/system/database/mysql.php on line 22Notice: Error: Subquery returns more than 1 row
Error No: 1242
SELECT DISTINCT *, (SELECT GROUP_CONCAT(cd1.name ORDER BY level SEPARATOR ' > ') 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 keyword FROM oc_url_alias WHERE query = 'category_id=64') AS keyword FROM oc_category c LEFT JOIN oc_category_description cd2 ON (c.category_id = cd2.category_id) WHERE c.category_id = '64' AND cd2.language_id = '1' in /home/yw1/tehkontrol.com/www/system/database/mysql.php on line 50
куда смотреть? прогер зажрался и своими силами пытаемся восстановить
![russian_ru.gif](style_emoticons/0day_emo/russian_ru.gif)
Вам же почти Украинским языком написали:
Субзапрос возвращает более чем 1 строчку
Автор: Blackone Apr 4 2018, 10:56
вот если б я еще понимал, где лежит код "SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" . (int)$category_id . "') AS keyword"
Автор: yarnik Apr 4 2018, 11:03
Думаю вам надо найти ошибку в базе, а не в коде.
Прогоните по базе отдельные часи запроса и посмотрите что выдает больше одной строчки.
После подумайте, а должно ли оно так делать?
Собственно сам запрос, выдающий ошибку, вы написали в первом посте.
Зачем лезть в код?
Автор: Blackone Apr 4 2018, 11:03
я понял, надо прогера искать
Автор: xose Apr 4 2018, 12:06
Схоже на те що двіжок опенкарта (чи той хто писав цей модуль) не очікує що для однієї категорії може бути більше одного рекорда в таблиці url_alias. Щоб пофіксити наслідки треба удалити дублюючий рекорд в цій таблиці. Гугл каже що це мажна зробити в Url Alias Manager або шукайте якіь seo налаштування в категоріях продуктів в адмінці.
Автор: Blackone Apr 4 2018, 16:05
(yarnik @ Apr 4 2018, 12:03)
![Перейти к цитате](style_images/0day[1]/message_quote_arrow.svg)
Собственно сам запрос, выдающий ошибку, вы написали в первом посте.Зачем лезть в код?
все что у меня есть - доступ в админку и на фтп где лежит сайт, что с этими запросами делать я увы далек
Автор: yarnik Apr 4 2018, 16:15
тогда да, без прогера никак ;(
Автор: Beat Apr 4 2018, 17:13
походу здесь
https://github.com/opencart/opencart/blob/master/upload/admin/model/catalog/category.php#L222
попробуйте LIMIT 1 проставить, но это такое, лучше разобраться почему подзапрос возвращает больше 1 строки
Автор: Blackone Apr 5 2018, 9:33
спасибо, но я залез в код и понял что ничерта в нем не пойму (знаком только с версткой и с++), проще прогера искать