2012-11-05 50 views
0

我開始使用OpenCart開發項目。當試圖添加新選項時,我遇到了一個奇怪的問題。OpenCart選項未正確加載

我在後端創建兩個文本選項並將它們分配給一個產品。它的工作原理。問題是,這些選項在前端沒有正確加載。它們顯示正常,但是當我輸出所有應該存在的變量(特別是product_option_id)時,它們都是NULL。我甚至沒有注意到此問題,但我需要product_option_id在代碼中進行一些修改。

當我通過輸出的print_f頁面上的選項,我得到這個:

[0] => Array 
    (
     [product_option_id] => 
     [calc_group_id] => 0 
     [description] => #### 
     [option_id] => 469 
     [name] => #### 
     [type] => text 
     [option_value] => 
     [required] => 0 
    ) 

[1] => Array 
    (
     [product_option_id] => 
     [calc_group_id] => 0 
     [description] => #### 
     [option_id] => 468 
     [name] => #### 
     [type] => text 
     [option_value] => 
     [required] => 0 
    ) 

我將問題範圍縮小到在Opencart的(目錄/模型/目錄/ product.php)的產品型號

這行:

$product_option_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_option po LEFT JOIN `" . DB_PREFIX . "option` o ON (po.option_id = o.option_id) LEFT JOIN " . DB_PREFIX . "option_description od ON (o.option_id = od.option_id) WHERE po.product_id = '" . (int)$product_id . "' AND od.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY o.sort_order"); 

我想這個SQL語句並返回正是它具有的product_option_id了。我不知道什麼是錯誤的,如果在phpmyadmin中測試,SQL語句返回正確的值,但上面的代碼行不(我輸出$ product_option_query - > $ rows和一些值,如product_option_id是空的)。

我懷疑我是以錯誤的方式創建了選項。或者這是一種可能性?有趣的是,其他一些選項(選擇類型選項)甚至我創建的選項(如果設置爲選擇類型)都會返回所有值,包括product_option_id。

回答

2

錯誤的報警,無論如何。

問題不在於opencart,問題是在我之前從事這個項目的人。 他改變了我在vqmod腳本中遇到的問題。不用說,他的sql語句不起作用,導致結果是兩個product_option_ids,一個是實際結果,一個是空的。

這對我來說是一個教訓。如果您接管了一個項目,請務必仔細檢查之前完成的工作。

+0

做得好管理解決它。似乎這是一個真正的痛苦 – TheBlackBenzKid

+0

我不是100%確定如果這是同樣的問題,因爲我的意思是你的代碼修復實際上通過在你的安裝中添加唯一的ID解決了這個問題在我的安裝中我通過添加,自動索引和主鍵到表中的第一列(導出數據,截斷表,改變表,編輯從0到''的插入的第一列,然後再次運行SQL) 聽起來比實際上更復雜是PS,這是V2.1,所以看起來他們沒有設法修復太多 – Chris