Вывожу в цикле значение из базы для фида, предварительно вычисляя цену (там есть еще значения, но они для вопроса не важны).
Сам запрос к базе:
$simpla->db->query("SET SQL_BIG_SELECTS=1");
$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation,
pc.category_id, c.url as c_url, c.name as c_name, c.percent1, c.percent2, c2.name as brand_name, i.filename as image, v.st_barcode as gtin, v.sale_price as sale_price, p.in_stock, p.sale
FROM __variants v LEFT JOIN __products p ON v.product_id=p.id
LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1)
LEFT JOIN __categories c ON pc.category_id = c.id AND c.use_category_persent > 0
LEFT JOIN __categories c2 ON c.parent_id = c2.id
LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
WHERE pc.category_id > 0 AND c.visible = 1 AND p.visible = 1 AND v.price > 0 AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position ");
Вычисления и вывод цен:
<?php while($p = $simpla->db->result()) {
$price = $simpla->stalker->nuRound($simpla->money->markup($p->variant_id)); ?>
<g:price><?=$price.' RUB'?></g:price>
<?php } ?>
При использовании функции markup почему-то происходит выход из цикла while. Сама функция markup:
public function markup($variant_id, $price=NULL)
{
// Расчет стоимости с наценкой брендов
// @peram - ИД варианта s_variants.id
// @peram - Иная цена, при отсутствии берется цена варианта
// @return - Итоговая цена варианта
$this->db->query("SELECT c.percent1, c.percent2, v.price FROM __categories c
LEFT JOIN __products_categories pc ON c.id=pc.category_id
LEFT JOIN __variants v ON pc.product_id=v.product_id
WHERE v.id=? ORDER BY pc.position ASC LIMIT 1",
(int)$variant_id);
$result = $this->db->result();
if(!empty($result))
{
if (empty($price)) $price = $result->price;
$markup = $result->percent1;
$markdown = $result->percent2;
if($markup > 0)
{
$price *= 1 + $markup / 100;
}
if($markdown > 0)
{
$price *= 1 - $markdown / 100;
}
return round($price, 2);
}
return 0;
}
}
Проблема: не могу понять почему цикл while конфликтует с функцией markup. Может вы сможете подсказать чего путного :) CMS, в которой идет работа SIMPLA.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Ест два сайта на локалхост(1270
На сайте имеется скрипт генерации миниатюрПоскольку он изначально на GD, я добавил несколько строк, чтобы имитировать тень:
Есть ли какой-то адекватный модуль для подсчёта уникальных посетителей страниц сайта? Искал по гитхабу и интернету в целом, ничего достойного...
Не понимаю в чем может быть проблема? Помогите пожалуйста Выскакивает такая ошибка