Выборка товаров по бренду
Нужно сделать выборку товаров, у которых задан определенный производитель. SQL запрос:
В phpMyAdmin запрос обрабатывается корректно. Вызываю методами xPDO в консоли. Возвращает пустой массив 'result'. Подскажите, в чем ошибка?
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>";
Комментарии: 3
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');
Все равно пустой массив ):
<?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>";
Отбой. Забыл Adidas убрать. Спасибо, Володя!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.