Вопросы, советы, возможные модификации и вообще все про модуль статистики кланов

Модератор: Exinaus, shw

#6114 Exinaus 27 июл 2012, 10:17
Ну так все правильно. У этого человек нет ни лт5 ни лт8. О чем ошибка и говорит.
А вы не проверив элементарно что count($a)>0, сразу подставляете его в foreach. Это не ошибка модуля, это ошибка кода.
#6116 slackware 27 июл 2012, 11:13
Exinaus писал(а):Ну так все правильно. У этого человек нет ни лт5 ни лт8. О чем ошибка и говорит.
А вы не проверив элементарно что count($a)>0, сразу подставляете его в foreach. Это не ошибка модуля, это ошибка кода.

Это не единственный игрок без лт 5 8 уровней.
Тем более, подобный код используется для вывода и тт, и арты, и ст, и больше нигде проблем нет.
Ошибка возникает до foreach.

Я всё равно добавил проверку, но ошибка не исчезла.
Буду благодарен, если поможете разобраться.
Страница статистики - первая вкладка
http://blackwateralpha.tk/clanstat
#6117 Exinaus 27 июл 2012, 11:51
Ну так все же написано то: array_keys() expects parameter 1 to be array
Это значит что подсовывая array_keys() переменную, она ждет там массив, а мы ей NULL выдаем, вот она и ругается.

ЗЫ Я походу глупость написал. когда писал count(), автоматом вставил туда перменную а.
Вот так надо:
Код: Выделить всё$b=$val['name'];
for ($i=5;$i<9;$i=$i+3)
{
  if(isset($res[$b]['tank'][$i]['lightTank']) and count($res[$b]['tank'][$i]['lightTank']) > 0 ) {
    //Строка 98 - ниже
    $a = array_keys($res[$b]['tank'][$i]['lightTank']);
    foreach ($a as $k => $v)
    {
        if ($v=="AMX 13 90" or $v=="Т-50-2")
        {
            $aa=($res[$b]['tank'][$i]['lightTank'][$v]['total']);
            if ($aa>0)
            { echo "$v ($aa) <br />"; }
        }
    }
  }
}
#6693 shw 20 авг 2012, 10:31
Сейчас занимаюсь вот такой табличкой:
q.jpg

Для "Общ" данные берутся по старом коду, сут - со таба "active.php".
А теперь вопрос - можно ли откуда то выдрать данные за последние сутки, отмеченные красными кружочками?
Или для этих полей можно получить все-таки только "среднюю температуру по больнице" с изменениями порядка +/- 0,000001 ?
#6694 Exinaus 20 авг 2012, 10:56
Я не знаю каким образом выводятся эти данные. И как предварительно обрабатываются, и обрабатываются ли вообще.

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

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

В принципе это не сложно, если данные для таблицы обрабатываются в цикле, то это пара простых вычислений в теле цикла + после цикла. Главное понять логику что ты хочешь отображать, что там должно быть, и как это рассчитывать.
#6695 shw 20 авг 2012, 10:59
я хочу видеть именно % попадания в среднем в клане за сутки. и максимальный опыт набитый кем-то опять же за прошедшие сутки.

Потому как вчера % попадания может быть 80, сегодня 20, а в итоге все равно показывать будет 50%.
Проблема с максимальным опытом еще грустнее. она нигде не фигурирует по сути, если человек свой рекорд не побил, то по сути мы эти цифры и не увидим. наверное. вот и спрашиваю =)

Ну и вопрос до кучи - я как то спрашивал, что сортировка как-то странно работает (сортировка например так: 1-10-112-2-3-4-5-55-6-7-8-82-9), есть ли шанс как-то поправить?
#6697 Exinaus 20 авг 2012, 11:38
shw писал(а):Ну и вопрос до кучи - я как то спрашивал, что сортировка как-то странно работает (сортировка например так: 1-10-112-2-3-4-5-55-6-7-8-82-9), есть ли шанс как-то поправить?

Это сортировщик неверно определил тип данных. Надо просто принудительно, в заголовке задать ему <th align='center' class="{sorter: 'digit'}">

shw писал(а):я хочу видеть именно % попадания в среднем в клане за сутки. и максимальный опыт набитый кем-то опять же за прошедшие сутки.

Потому как вчера % попадания может быть 80, сегодня 20, а в итоге все равно показывать будет 50%...

У нас есть новый показатель точности игрока. Фактически это его текущий.* У нас есть данные о том на сколько этот показатель изменился за сутки.
Выходит, отняв от нового показателя изменения, мы получим старый. Высчитав для каждого игрока старый показатель точности, мы можем получить старый средний показатель по клану. Ну и отняв от нового среднего старый средний мы получим разницу.
Т.е. посчитать это реально, проблема в том что в автоматическом режиме это не считается, надо считать самому.
* Это если крон, собирая данные обновил его показатели. А мог просто обновить срез данных, надо бы посмотреть на работу крона внимательнее ...

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

shw писал(а):Проблема с максимальным опытом еще грустнее. она нигде не фигурирует по сути, если человек свой рекорд не побил, то по сути мы эти цифры и не увидим. наверное... вот и спрашиваю =)

Да, тут именно так.
#6700 shw 20 авг 2012, 13:29
Exinaus писал(а):
shw писал(а):Ну и вопрос до кучи - я как то спрашивал, что сортировка как-то странно работает (сортировка например так: 1-10-112-2-3-4-5-55-6-7-8-82-9), есть ли шанс как-то поправить?

Это сортировщик неверно определил тип данных. Надо просто принудительно, в заголовке задать ему <th align='center' class="{sorter: 'digit'}">

В точку, спасибо! По поводу остального, наверно оставлю как есть, ибо исходных данных нет.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Реклама | Adv