見我的回答如下。
背景
任何熟悉禪宗車會知道它來完全與又名阿爾法下拉分揀機是世界上最沒有意義的產品排序選項。
基本上,這樣做可以讓你選擇產品的字母/數字,他們開始。那麼,當我購物時,物品的首字母幾乎不是一個有用的標準,所以我正在嘗試創建一個更有用的產品分揀機,它將根據添加的日期,價格和產品名稱進行分類。然後根據屬性類別進行過濾。
問題
所以我已成功地迫使分揀機做我自己的查詢,這是工作的一切,除了價格。
這裏是我的當前設置爲代價產生的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正常工作。不幸的是,這是不是通過Zen Cart的工作,我得到了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 2013-02-08 17:46:24
以後看這個的人可能也想看看貢獻http://www.zen-cart.com/downloads.php?do = file&id = 1612,它有各種排序選項。 – 2013-02-10 23:58:44
@ScottWilson我討厭你的男人。我剛剛花了好幾天的時間來創建該插件的功能(可能不是那麼好),在這裏,你會在艱難的日子之後來到解決方案。我搜索了這個,並找不到它。但是,如果你正在閱讀這個。使用它。 – WebweaverD 2013-02-13 16:54:14