Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как сложить все значения дополнительного поля?

Как сложить все значения дополнительного поля?


     18.08.2015    Общие вопросы, Хаки    731

вопрос
Здравствуйте.
Datalife 10.5
Подскажите, пожалуйста, как вывести на главной странице СУММУ всех значений дополнительного поля под названием price?

Вроде бы понятно задал вопрос :) Помогите, пожалуйста!

Ответа пока нет


Комментарии пользователей (6)

Gameer
224

1118 | 394

Gameer - 19 августа 2015 00:09 - Эксперт

$get = $db->super_query("SELECT SUM(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  'price|', -1 ) ,  '||', 1 )) as price FROM " . PREFIX . "_post WHERE SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  'price|', -1 ) ,  '||', 1 ) !=''");
$tpl->set("{price}", $get['price']);

Истина в противоречии.​

Extazy
7

Extazy - 19 августа 2015 12:22 - Юзер

Вы эксперт уровня бога? :) Я запутался в этом запросе, но он реально работает. СПАСИБО огромное!

А можете подсказать, пожалуйста, как сработает данный запрос, если в дополнительном поле price:
1) цифра указана с десятичным значением через запятую
2) цифра указана с десятичным значением через точку
3) указано не число, а текст

Gameer
224

1118 | 394

Gameer - 19 августа 2015 12:32 - Эксперт

Extazy, тогда замените запрос на этот :
$get = $db->super_query("SELECT ROUND(SUM(SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  'price|', -1 ) ,  '||', 1 )), 2) as price FROM " . PREFIX . "_post WHERE SUBSTRING_INDEX( SUBSTRING_INDEX( xfields,  'price|', -1 ) ,  '||', 1 ) !=''");

Истина в противоречии.​

Extazy
7

Extazy - 19 августа 2015 12:36 - Юзер

спасибо) но всё же, пожалуйста, прокомментируйте запрос.
1) Если в поле окажется не цифровое значение, то оно просто пропустится и ошибки не будет?
2) если десятичная доля выделяется запятой или точкой - в любом из вариантов произойдёт правильно округление?

Gameer
224

1118 | 394

Gameer - 19 августа 2015 12:40 - Эксперт

Extazy, не сталкивался с тем что бы в ячейке были с разными разделителями, по сути, оно должно округлить и ошибок быть не должно.

Истина в противоречии.​

Extazy
7

Extazy - 19 августа 2015 13:01 - Юзер

ну.. я лентяй - проверил, вот результат:
1) если у одного из значений дополнительного поля прописать десятичное значение через запятую, то число округляется в меньшую сторону
2) если десятичное значение через точку, то число засчитывается, но не округляется

Ещё раз огромное спасибо!

Если Вы хорошо разбираетесь в дле, то может посмотрите мою проблему с авторизацией через facebook - готов заплатить за решение проблемы!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы