Страница 1 из 2

Важно! "Данные по состоянию на"

СообщениеДобавлено: 13 дек 2013, 16:19
Edrard
В общем, хочу всех предупредить, что сейчас данный параметр фактически потерял свою актуальность, так как теперь в статистике игрока updated_at изменяется по своим, не ведомым законам. Саппорт дал вот такое пояснение:

Информация об аккаунте автоматически обновляется достаточно часто по ряду различных причин, не зависимо от действий пользователя.

С уважением,

Команда поддержки разработчиков

Wargaming.net

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 10:26
abagrov
А если в качесте костыля использовать нечто такое:
Код: Выделить всёselect updated_at from col_players where all_battles=(select max(all_battles) from col_players where nickname='[nickname]') and nickname='[nickname]' limit 1

Т.е. по сути выявить первый день с максимальным кол-вом боёв для конкретного игрока.

Есть другой вариант, но потребует добавления столбца (например lastbattle_at) в col_players. При обработке крона сравнить кол-во боёв игрока с предыдущим кроном и если они совпадают, то скопировать старое содержимое lastbattle_at, если нет, то скопировать в это поле updated_at.

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 11:27
abagrov
Готовое решение по 1-ому методу для 3.0.3:
1.gif


16.01.2014
- добавил контроль минимальной даты
- изменил округление дней отсутствия к минимальному целому (ранее было мат. округление)
15.01.2014
- переработал под один общий скул запрос, вместо запросов по каждому игроку
- поправил ошибку (отсутствовал ~16000дней) по новым игрокам в клане
(1.9 КБ) Скачиваний: 265


зы для функционирования необходим работающий крон (крон данные)

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 11:59
Surik33
abagrov писал(а):Готовое решение по 1-ому методу:
1.gif

roster.zip


Выдает такую ошибку:

Array
(
[0] => 42S02
[1] => 1146
[2] => Table 'clanstat300.defs_col_players' doesn't exist
)

Error on file /var/www/wot/clan_stat-300/tabs/roster.php, on line: 47

Code: select updated_at from defs_col_players where all_battles= (select max(all_battles) from defs_col_players where nickname='OberstDD') and nickname='OberstDD' limit 1;

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 12:36
abagrov
Surik33 писал(а):
abagrov писал(а):Готовое решение по 1-ому методу:
1.gif

roster.zip


Выдает такую ошибку:

Array
(
[0] => 42S02
[1] => 1146
[2] => Table 'clanstat300.defs_col_players' doesn't exist
)

Error on file /var/www/wot/clan_stat-300/tabs/roster.php, on line: 47

Code: select updated_at from defs_col_players where all_battles= (select max(all_battles) from defs_col_players where nickname='OberstDD') and nickname='OberstDD' limit 1;

Блин! Настроил для себя и оттестил на себе =) Забыл, что префиксы ещё надо учесть разные. Файл поправил, перекачайте.

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 12:52
Surik33
Спасибо, работает

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 13:47
Exinaus
Чисто ради оптимизации, раз уж вы начали делать. Могу дать совет не дергать данную информацию по каждому игроку, а получить ее скопом за один запрос:
Код: Выделить всёSELECT updated_at, account_id
FROM `col_players` p,
(
SELECT max( all_battles ) AS maxb, account_id
FROM `col_players`
GROUP BY account_id
) m
WHERE p.all_battles = m.maxb
AND p.account_id = m.account_id


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

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 14 янв 2014, 15:58
Luxeon
Паказывает вот так

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 15 янв 2014, 06:45
abagrov
Luxeon писал(а):Паказывает вот так

Новобранцев в крон базе нет, поэтому возникает ошибка с ~16000дней - это я поправлю. Отсутствует 0 дней специально не стал отображать, дабы не загромождать таблицу.

Re: Важно! "Данные по состоянию на"

СообщениеДобавлено: 27 авг 2014, 08:46
kokis
Готовое решение по 1-ому методу