0, 'published' => 1));
$q->innerJoin('msProductData', 'Data', 'msProduct.id = Data.id');
$q->sortby('Data.price', 'asc');
$q->select('Data.price');
$q->limit(1);
if ($q->prepare() && $q->stmt->execute()) {
$price = $q->stmt->fetch(PDO::FETCH_COLUMN);
}
return $price;
нужно получить минимальную цену в категории, выводит 0.
как это правильно сделать?
$sql = "SELECT MIN(modx_ms2_products.price) FROM modx_ms2_products LEFT JOIN modx_site_content ON modx_ms2_products.id = modx_site_content.id WHERE modx_site_content.parent = ".$id; $statement = $modx->query($sql); $ids = $statement->fetchAll(PDO::FETCH_COLUMN); примерно так
тут не учитываются категории
$q->where('Data.price > 0'); попробуйте добавить.
$price = 0; $q = $modx->newQuery('msProduct', array('parent' => $id, 'deleted' => 0, 'published' => 1)); $q->innerJoin('msProductData', 'Data', 'msProduct.id = Data.id'); $q->where('Data.price > 0'); $q->sortby('Data.price', 'asc'); $q->select('Data.price'); $q->limit(1); if ($q->prepare() && $q->stmt->execute()) { $price = $q->stmt->fetch(PDO::FETCH_COLUMN); } return $price; не, что-то не хочет, выводит 0
у меня данный пример работает.... кстати.
Он туда не тот id передавал.
Обсуждают сегодня