Vlupidol Опубликовано 27 марта, 2017 Жалоба Поделиться Опубликовано 27 марта, 2017 (изменено) Здравствуйте. Ситуация такая: В таблице __comments у меня присутствует дополнительное поле rating где число может быть к каждому комментарию от 1 до 5 Я вывожу количество комментариев товаров к каждому товару таким методом: В view/View.php, в функции get_products добавил $product->comments = array(); $comments = $this->comments->get_comments(array('object_id'=>$products_ids)); foreach($comments as &$comment) { $products[$comment->object_id]->comments[] = $comment; } В шаблоне работает так: {$product->comments|count} - выводится кол-во комментов к данному товару Скажите, как мне вывести сумму чисел столбца rating к данному товару? Как только не пробовал - не могу найти решения, ни SELECT SUM, ни flor (foreach внутри floor не работает).. Вот таким методом - выводит значения но как их сложить и вывести одним тегом (например {$product->comments->rating|sum} - не могу добиться никак.) {foreach $product->comments as $com}{$com->rating}{/foreach} Изменено 27 марта, 2017 пользователем Vlupidol Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 27 марта, 2017 Жалоба Поделиться Опубликовано 27 марта, 2017 {$rating = 0} {foreach $product->comments as $com}{$rating = $rating + $com->rating}{/foreach} Цитата Ссылка на сообщение Поделиться на другие сайты
Vlupidol Опубликовано 27 марта, 2017 Автор Жалоба Поделиться Опубликовано 27 марта, 2017 {$rating = 0} {foreach $product->comments as $com}{$rating = $rating + $com->rating}{/foreach} Спасибо большое. Еще вопрос, как-бы подсчитать десятые числа? В данный момент рассчет так: {$rating = 0} {foreach $product->comments as $com}{$rating = $rating + $com->rating}{/foreach} {floor(abs({$rating}/($product->comments|count)))} Так выводит только целые числа. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 27 марта, 2017 Жалоба Поделиться Опубликовано 27 марта, 2017 ПравильноПотому что http://www.php.su/functions/?floor округляет до целого, попробуйтеиспользовать round - его можно настроить на десятые или сотые Цитата Ссылка на сообщение Поделиться на другие сайты
Smartycms Опубликовано 27 марта, 2017 Жалоба Поделиться Опубликовано 27 марта, 2017 {math equation="x/y" x=$rating y=$product->comments|count format="%.2f"} Как вариант Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.