Объединение таблиц и вывод по дате

Фанат

oncle terrible
Команда форума
Dzen
Речь идёт о КОЛИЧЕСТВЕ обрабатываемых данных.
Выбирать ВСЮ таблицу на 100500 строк и в пыхапе группировать, чтобы получить 10 - это дичь.

Если же речь идёт об одних и тех же данных, просто представленных по-другому - разницы никакой.
Даже, скорее, наоборот - куда проще в пыхе прокрутить эти несчастные 100 строк в цикле, чем строить хитромудрый запрос, который может оказаться тормозным.
 

Фанат

oncle terrible
Команда форума
короче. я бы сделал так.
получил данные тем запросом, который у тебя самый первый.
потом в цикле прокрутил его 1 раз, делая массив вила
PHP:
author_id => array(
    'name' => 'имя'
    data => array(
        'date' => num,
        'date' => num,
    )
);
потом шел по нему в цикле, выводя автора
а потом в цикле от 1 до последнего дня выводимого месяца, смотреть - если есть на эту дату цифры - выводить, если нету - не выовдить.
 
  • Like
Реакции: Dzen

Dzen

Новичок
спасибо! сейчас попробую.

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

Вообще задача мне кажется распространенная, везде в статистики на сайтах такие вещи используются, но как они грамотно реализованы, как-то мутно... )
 

Фанат

oncle terrible
Команда форума
какой ещё внешний цикл?
ну вот я о том говорил
нет, это Я говорил: ты не знаешь, за какие даты хочешь выводить информацию.
вот сначала узнай.
именно этим отличается реальная жизнь от эротических фантазий.
как только ты начинаешь делать реальный код - сразу миллион идиотских вопросов просто испаряется.
потому что на самом деле их и не было - ты их выдумал.
 

Dzen

Новичок
конечно же правильным былоб в масиве (моделе) по автору держать все возможные даты показанные в таблице, даже если в эту дату запись ПУСТО.
в этом случае рисовать таблицу будет намного легче...

те для конкретного примера масив должен быть таким

PHP:
array(
[айди_автора1] =>array(
 11.12.2012 => null,
 12.12.2012 => 12
),
[айди_автора2] =>array(
 11.12.2012 => 15,
 12.12.2012 => 6
)
);
а пусто кстати нету, в самой базе всегда есть "0", если подразумевается пусто.
 

Dzen

Новичок
А вот это неправильно
а такие данные приходят из глобальной базы, и 0 нужно выводить в браузер.
Не правильно так понимаю из-за лишних кб в базе, но так почему-то задумано, и насколько помню во всех статистических сервисах, там где ничего - там "0" показывают, хотя "0" можно и скриптом вывести по идее

.WMix
про "0" сказал, может это облегчит вывод данных.

У меня не понятки как вывести числа в шапке над таблицей как бы, а не то что внутри неё, и можно ли эти числа брать из полученных массивов, или это вообще отдельно нужно строить.
 

WMix

герр M:)ller
Партнер клуба
а такие данные приходят из глобальной базы, и 0 нужно выводить в браузер.
должно быть null..хотя у тебя все может быть... выводить 0 вопрос дизайна, мне вот '-' по душе

.WMix
про "0" сказал, может это облегчит вывод данных.
я не про 0 говорил, а то что у всех авторов даты одинаковые, в одинаковом колличестве и одинаково отсортированы
 

Фанат

oncle terrible
Команда форума
ОМГ. Ну у тебя и каша в голове.
"такие данные приходят из глобальной базы" - это не твоя что ли база? а какая связь с теми таблицами, из которых ты выбираешь инфу?
"0 нужно выводить в браузер" какая связь?! если ноль нужно выводить, при чем здесь хранение?
" из-за лишних кб в базе," дело не в лишних кб. а в организации базы данных. если она у тебя хранит нули - значит она организована неправильно
 

Dzen

Новичок
базы наши. локальная и глобальная. у глобальной кривой функционал не переделываемый, поэтому тащим из неё к себе и делаем как надо, со своей нагрузкой и ресурсами, чтобы её не дёргать.

дааа, не хило грузит такое дело:

PHP:
 author_id => array(
    'name' => 'имя'
    data => array(
        'date' => num,
        'date' => num,
    )
);
когда у нас под каждым 'date' есть 5 значений view, ask, и т.д.

т.е.

PHP:
[айди_автора] => Array
        (
            [name] => Array
                (
                    [имя] => Array
                        (
                            [data] => Array
                                (
                                    [2012-11-13] => Array
                                        (
                                            [view] => 55
                                            [ask] => 4
                                        )
                                     [2012-11-14] => Array
                                        (
                                            [view] => 155
                                            [ask] => 44
                                        )
а если этих view и ask под каждым числом штук 8 еще параметров, то труба вообще, чуть ли не 10 секунд обработка идёт
 

WMix

герр M:)ller
Партнер клуба
а не сильно ли ты углубил масив?
PHP:
[айди_автора] => Array
        (
            [name] => Array
                (
                    [имя] => Array
                        (
                            [data] => Array
                                (
и даже если учесть что name это array то что делает там дата?
 

Dzen

Новичок
name лишний да, надо как элемент сделать, но что-то времени вагон уходит на эти туда-сюда массив гоняй туда-сюда. ЕСЛИ много элементов под датой. Если мало, то всё ок.
 

WMix

герр M:)ller
Партнер клуба
времени вагон уходит только лишь от незнания и от постоянных распросов как сделать,
за эти 2 дня яб уже эту статистику сортировал бы и фильтровал бы на ajax
 

Dzen

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

Фанат

oncle terrible
Команда форума
ну, если у тебя 500 х 8 х 30 строк из базы грузится - неудивительно, что медленно.
Другое дело - непонятно, как аякс здесь поможет.
тут если только руки выпрямлять.
 
Сверху