Иногда возникает необходимость сделать запрос к базе данных в Joomla 3, например, найти минимальную или максимальную цену на товар в категории. И чтобы не городить костыли надо использовать встроенный функционал:
$db =&JFactory::getDBO();
$query = "SELECT product_id FROM #__jshopping_products_to_categories WHERE category_id='177'";
$db->setQuery($query);
$query_result = $db->loadObjectList();
foreach($query_result as $row) {
echo $row->product_id;
}
В приведённом выше коде мы получаем список ID товаров в категории с ID = 177 Если, конечно, вы используете для построения магазина компонент JoomShopping.
Следующий пример запроса поиска товара с максимальной ценой в категории:
$db =&JFactory::getDBO();
$category_id = 177;
$query = "SELECT product_id FROM #__jshopping_products_to_categories WHERE category_id='".$category_id."'";
$db->setQuery($query);
$query_result = $db->loadObjectList();
$max_price = 0;
foreach($query_result as $row) {
$query = "SELECT product_price, product_publish FROM #__jshopping_products WHERE product_id='".$row->product_id."' LIMIT 1";
$db->setQuery($query);
$price_row = $db->loadObjectList();
if ($price_row[0]->product_publish && $price_row[0]->product_price > $max_price) {
$max_price = $price_row[0]->product_price;
}
}
echo $max_price;