2014-11-06 80 views
0

在Zen購物車中嘗試創建連接並計數(然後設置順序)時遇到了很多麻煩。在Zen Cart中創建加入和COUNT()

下面的代碼:

echo $listing_sql = "select " . $select_column_list . " p.products_id, count(opc.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 " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . 
    TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . 
    TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p2c.products_id = s.products_id 
    join " . TABLE_ORDERS_PRODUCTS . " opc on opc.products_id = p.products_id 
    where p.products_status = 1 
    and p.products_id = p2c.products_id 
    and pd.products_id = p2c.products_id 
    and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' 
    and p2c.categories_id = '" . (int)$current_category_id . "'" . 
    $alpha_sort . " ORDER BY count(opc.products_id)"; 

我想算opc.products_id,然後將其設置爲ORDER BY在結束計數(opc.products_id)。不知道我哪裏錯了,非常感謝!

科斯塔

回答

0

很難不迷失在你的代碼,但你需要做的事情:

1)讓像你想的是選擇產品,只是沒有計數(opc.products_id查詢)和現在排序。測試它。所有產品應該只有一個排的每個(不口是心非),然後...

2)重點編輯代碼在這三個突出部分:

echo $listing_sql = "select " . $select_column_list . " p.products_id, count(opc.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 

,count(opc.products_id) as opc_count 

from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . 
TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . 
TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p2c.products_id = s.products_id 

join " . TABLE_ORDERS_PRODUCTS . " opc on opc.products_id = p.products_id 

where p.products_status = 1 
    and p.products_id = p2c.products_id 
    and pd.products_id = p2c.products_id 
    and pd.language_id = '" . (int)$_SESSION['languages_id'] . "' 
    and p2c.categories_id = '" . (int)$current_category_id . "'" . 
    $alpha_sort . " 

GROUP BY p.products_id ORDER BY opc_count "; 
+0

感謝大衛,仍然無法正常工作,這裏是正常工作的香草代碼: http://jsfiddle.net/mpjshvs4/ 將其轉儲到jsfiddle中,以便它保持清晰。 – Cozmoz 2014-11-06 16:15:53

+0

您至少可以告訴我們SQL錯誤消息。 AND計算查詢,當這些變量和常量背後有未知數時,它是毫無意義的。我相信至少有一個錯誤是,'$ alpha_sort'包含'ORDER BY'子句。你不能擁有其中的兩個,你需要合併它們。 – David162795 2014-11-06 16:21:54

+0

對不起,大衛,這裏是一個截圖: http://www.mediafire.com/view/dmgp5j6g7lne63e/Screenshot.png – Cozmoz 2014-11-06 16:43:33