Помощь iSearch Corporate 2.3.3 - ошибка БД при сортировке на странице поиска

SuperRomario

Постоялец
Регистрация
1 Дек 2013
Сообщения
56
Реакции
4
Все привет.
Столкнулся с такой проблемой, что если на странице поиска попытаться выбрать другую сортировку, например, по цене или названию, то появляется такая ошибка:
Код:
Notice: Error: Unknown column 'isc.name' in 'order clause'
Error No: 1054
SELECT SQL_CALC_FOUND_ROWS isc.product_id as product_id, description_1 as description, model, discount, name_1 as name, image, price, tax_class_id, special, rating, reviews, name_length_1 as name_length, seo_url, stock_status_1 as stock_status, stock_status_id, quantity, viewed, product_attributes, date_available, (CASE WHEN isbn LIKE "%порожек%" THEN 5 WHEN categories_1 LIKE "%порожек%" THEN 4 WHEN description_1 LIKE "%порожек%" THEN 3 ELSE -101 END) as CorporateWeight FROM oc_isearch_cache AS isc WHERE FIND_IN_SET('0', isc.stores) AND isc.search_data_1 LIKE "%порожек%" AND status='1' AND !(isc.status = 0) UNION SELECT isc.product_id as product_id, description_1 as description, model, discount, name_1 as name, image, price, tax_class_id, special, rating, reviews, name_length_1 as name_length, seo_url, stock_status_1 as stock_status, stock_status_id, quantity, viewed, product_attributes, date_available, (CASE WHEN isbn LIKE "%порожек%" THEN 5 WHEN categories_1 LIKE "%порожек%" THEN 4 WHEN description_1 LIKE "%порожек%" THEN 3 ELSE -101 END) as CorporateWeight FROM oc_isearch_cache AS isc WHERE FIND_IN_SET('0', isc.stores) AND isc.description_1 LIKE "%порожек%" AND status='1' AND !(isc.status = 0) GROUP BY (product_id) ORDER BY CorporateWeight DESC, isc.name ASC LIMIT 0, 5000 in /home/b/...../public_html/system/database/mysql.php on line 50
Сама строка поиска:
Код:
/isearch/?sort=pd.name&order=ASC&search=порожек&description=true
Все это происходит на ocStore 1.5.5.1
 
А вот такая таблица - "oc_isearch_cache", в базе присутствует?
 
да, такая таблица имеется.
Если я правильно понял суть проблемы, то она исходит из окончания запроса:
Код:
 GROUP BY (product_id) ORDER BY CorporateWeight DESC, isc.name ASC LIMIT 0, 5000
В частности ORDER BY isc.name. Просто результат выполнения не будет содержать столбец isc.name, но будет содержать name.
Так что замена isc.name на name должна помочь. Но как то меня смущают такие запросы модуля, почему они так написали :nezn:.

В версии под 2.X запросы изменили, скинь модуль. Может найду где косяк.
 
Последнее редактирование:
скинь модуль. Может найду где косяк
Самого модуля на компе нет, слетел винт и все пропало.
Качал я его отсюда Для просмотра ссылки Войди или Зарегистрируйся


Заранее спасибо
 
Файл: vqmod\xml\isearch_corporate.xml
строка 725:
Код:
case 'pd.name' : $mysort = 'isc.name ' . $order; break;
поменяй на:
Код:
case 'pd.name' : $mysort = 'name ' . $order; break;
И нужно обновить модификаторы в админке. Думаю должно помочь.
 
Последнее редактирование:
Назад
Сверху