Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как правильно выполнить запрос mysql ?

Как правильно выполнить запрос mysql ?


     12.01.2020    Все вопросы » MySQL    185

вопрос
Имеется доп. поле
[xfvalue_filesize]

Имеется база данных: dle_mb

Около 1000 новостей загружено и в этом доп. поле расположены цифры.
Какой выполнить запрос, чтобы добавить в базу рядом с данными этого поля МБ.

Т.е. сейчас выводится так, 200, а нужно так 200 МБ. (между ними пробел)

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


8 комментариев

dj-avtosh
PHP-developer

dj-avtosh - 12 января 2020 23:53 -

Здравствуйте. Не проще ли в шаблоне рядом с доп. полем выводить МБ?

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

ARTYOM
Юзер

ARTYOM - 13 января 2020 00:50 -

Я так делал, но вот проблема, что новые обновленные файлы уже в ГБ. А размещать 1800 МБ как-то не красиво. Не могу найти внятный выход из данной ситуации.

Было конечно замечательно если функционал dle обладал функцией доп. поле+выпад. список (где будет КБ,МБ,ГБ) выбор при добавлении новости.

ТeraМoune
Юзер

ТeraМoune - 13 января 2020 03:21 -

Это всё можно сделать в две строчки, в dle есть функция форматирует это дело используется например в аттачменте файлов. Функция называется formatsize.
Значение доп поля нужного по названию нужно пропустить через эту функцию и будет на выходе то что нужно.

function formatsize($file_size) {
	
	if( !$file_size OR $file_size < 1) return '0 b';
	
    $prefix = array("b", "Kb", "Mb", "Gb", "Tb");
    $exp = floor(log($file_size, 1024)) | 0;
	
    return round($file_size / (pow(1024, $exp)), 2).' '.$prefix[$exp];

}

dj-avtosh
PHP-developer

dj-avtosh - 13 января 2020 09:09 -

вот, прям с языка снял, спасибо.

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

ТeraМoune
Юзер

ТeraМoune - 13 января 2020 03:59 -

Находите в файлах где используются доп поля, что-то вроде


$tpl->set( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]] );


и делаете что-то вроде


if( $value[0] == 'имя_доп_поля' ) $tpl->set( "[xfvalue_{$value[0]}]", formatsize($xfieldsdata[$value[0]]) );
else $tpl->set( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]] );

dj-avtosh
PHP-developer

dj-avtosh - 13 января 2020 09:10 -

как раз поэтому я и считаю, что лучше в поле хранить "чистые" данные (без лишнего текста).

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

ARTYOM
Юзер

ARTYOM - 14 января 2020 17:27 -

Это отлично про чистые данные, но я не смог найти решения - суммирование этих данных. Чтобы в шаблоне main.tpl вывести общую сумму данных из доп. поля каждой новости.

Чтобы это еще не так :104800 отображалось, а так 104.8 ГБ. ну и так далее. Готов даже на пивасик скинуть )

Доп .поле: filesize

dj-avtosh
PHP-developer

dj-avtosh - 14 января 2020 23:23 -

вон же выше решение

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.): @blob42
В телегу писать сразу задачу и бюджет.

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

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

наверх