2016-02-11 1 views
1

Ответ на этот вопрос был посвящен Google с сайта 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 (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']); 

также принести вам имя продукта на основе идентификатора продукта.

P.S: У вас есть проблема с орфографическими ошибками $high

 Смежные вопросы

  • Нет связанных вопросов^_^