2016-02-11 52 views
1

這個問題的答案是從stackoverflow網站看谷歌。但它沒有找到我的情況的答案。opencart - 通過價格範圍獲得產品

我需要從OpenCart CMS上的數據庫中提取有關產品價格範圍的信息。 向該我添加了一個方法來建模/目錄/ product.php的文件的末尾:

public function getProductByPrice($low, $heigh){ 
     $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE price >= " . $low . " AND price < " . $heigh); 

     foreach ($query->rows as $result) { 
      $product_data[$result['product_id']] = $this->getProduct($result['product_id']); 
     } 
     return $product_data; 
    } 

有從只有一個表中提取信息。產品名稱在另一張桌子上。我如何直接從兩個表中提取數據並將兩個結果合併到一個數組中?

的Opencart的版本:2.1.0.2(rs.1)

回答

2

從兩個表中提取數據使用JOINS,並獲得產品與價格的限制,你可以使用此查詢的數據和名稱:

$query = $this->db->query("SELECT p.*, pd.name FROM " . DB_PREFIX . 
     "product p LEFT JOIN " . DB_PREFIX ."product_description pd 
      ON p.product_id = pd.product_id WHERE p.price >= " . (int)$low . 
     " AND p.price < " . (int)$high ."); 

然而,

$this->getProduct($result['product_id']); 

也將獲取您根據產品ID的產品名稱。

P.S:拼寫錯誤$high