решаемыедзен корзина SQL - Выбрать товары и заказ по цене
Смотрите мой ответ ниже.
ФОН
Любые, кто знаком с дзна корзиной будет знать, что он поставляется в комплекте с мирами самым бессмысленным вариантом продукта сортировки аки выпадающего сортировщиком альфа.
По сути, это означает, что вы можете выбрать продукты по букве/номеру, с которого они начинаются. Ну, начальное письмо элемента редко является полезным критерием, когда я делаю покупки, поэтому я пытаюсь создать более полезный сортировщик товаров, который будет сортировать по дате, цене и названию продукта. а затем фильтровать на основе категории атрибутов.
ПРОБЛЕМА
Так мне удалось заставить сортировщик сделать свой собственный запрос, который работает на всем, кроме цены.
Вот SQL производится моим текущим набором вверх по цене выпадающий:
SELECT DISTINCT p.products_id, p.products_type, p.master_categories_id
,p.manufacturers_id, p.products_price, p.products_tax_class_id
,pd.products_description
,IF(s.status = 1, s.specials_new_products_price, NULL)
AS specials_new_products_price
,IF(s.status =1, s.specials_new_products_price, p.products_price)
AS final_price
,p.products_sort_order
,p.product_is_call
,p.product_is_always_free_shipping
,p.products_qty_box_status
FROM products p
LEFT JOIN specials s on p.products_id = s.products_id
LEFT JOIN products_description pd on p.products_id = pd.products_id
JOIN products_to_categories p2c on p.products_id = p2c.products_id
WHERE p.products_status = 1
and pd.language_id = '1'
and p2c.categories_id = '1'
GROUP BY p.products_id
ORDER BY final_price ASC
Как вы можете видеть, что я пытаюсь разобраться на основе окончательной цены, которая является псевдонимом для любой нормальной цены или специальная цена (если установлена). Это отлично работает через phpmyadmin. К сожалению, это не работает через дзен телегу, я получаю ошибку PHP:
PHP Fatal error: 1054:Unknown column 'final_price' in 'order clause' :: SELECT p.products_id, p.products_price_sorter, p.master_categories_id, p.manufacturers_id FROM products p LEFT JOIN specials s on p.products_id = s.products_id LEFT JOIN products_description pd on p.products_id = pd.products_id JOIN products_to_categories p2c on p.products_id = p2c.products_id WHERE p.products_status = 1\r\n and pd.language_id = '1'\r\n and p2c.categories_id = '1' GROUP BY p.products_id ORDER BY final_price ASC in /var/www/includes/classes/db/mysql/query_factory.php on line 101
Так что я смотрел на линии 101 и это относится к способу обработки ошибок в классе абстракции базы данных. У кого-нибудь есть идеи, что здесь не так, и как я могу это решить?
Не знаю о дзэн-телеге. Если это не разрешает псевдонимы, тогда вы останетесь с вырезанием и вставкой всего столбца def 'ORDER BY IF (s.status = 1, s.specials_new_products_price, p.products_price)' или с помощью числовой ссылки столбца 'ORDER BY 9' ... – Glenn
Люди, которые смотрят на это в будущем, также могут захотеть взглянуть на вклад http://www.zen-cart.com/downloads.php?do = file & id = 1612, который имеет различные параметры сортировки. –
@ScottWilson Я тебя ненавижу. Я просто провел несколько дней, создав именно то, что делает этот плагин (возможно, тоже не так), и здесь вы прибегаете к решению после жесткого отказа. Я искал это и не смог его найти. Но да, если вы читаете это. Используйте это. – WebweaverD