Выборка товаров по бренду

Нужно сделать выборку товаров, у которых задан определенный производитель. SQL запрос:

SELECT msProducts.id 
FROM modx_ms2_products as msProducts 
LEFT JOIN modx_ms2_vendors as msVendors 
ON msVendors.name=msProducts.vendor  
WHERE msVendors.name='4M'

В phpMyAdmin запрос обрабатывается корректно. Вызываю методами xPDO в консоли. Возвращает пустой массив 'result'. Подскажите, в чем ошибка?

<?php
$q = $modx->newQuery('msProduct');
$q->leftJoin('msVendor','msVendor','msProduct.vendor = msVendor.name');
$q->where(array('msVendor.name' => 'Adidas'));
$q->select(array('msProduct.id'));

$result = array();
if ($q->prepare() && $q->stmt->execute()) {
	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
		$result[$row[product_id]] = $row[vendor];
	}
}
echo "<pre>";print_r ($result);echo "</pre>";
Станислав
28 ноября 2015, 08:08
modx.pro
2 498
0

Комментарии: 3

Володя
28 ноября 2015, 11:42
+2
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/model/schema/minishop2.mysql.schema.xml#L23

$q->leftJoin('msProductData','msProductData','msProduct.id = msProductData.id');
$q->leftJoin('msVendor','msVendor','msProductData.vendor = msVendor.id');
    Станислав
    28 ноября 2015, 11:59
    0
    Все равно пустой массив ):
    <?php
    $q = $modx->newQuery('msProduct');
    $q->leftJoin('msProductData','msProductData','msProduct.id = msProductData.id');
    $q->leftJoin('msVendor','msVendor','msProductData.vendor = msVendor.id');
    $q->where(array('msVendor.name' => 'Adidas'));
    $q->select(array('msProduct.id as id'));
    
    $result = array();
    if ($q->prepare() && $q->stmt->execute()) {
    	while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
    		$result[] = $row[id];
    	}
    }
    echo "<pre>";print_r ($result);echo "</pre>";
    Станислав
    28 ноября 2015, 12:08
    0
    Отбой. Забыл Adidas убрать. Спасибо, Володя!
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3