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

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

#8259 zSanyaz 01 окт 2012, 20:26
Admin писал(а):
- Не забывайте выставить права для 777 на /cache и /admin/sql

Не понимаю где и как нужно прописать права для 777
подскажите пож, а то на хост.ру потом в крон логе пишет что необходимо авторизоваться
#8294 shw 02 окт 2012, 18:14
Vandal81 писал(а):Такой вопрос. Из-за чего повторяются ники игроков в списке ушедших? :?: http://bw-wot.16mb.com/bw/main.php#tabs-1

1) я предупреждал насчет дырки в статистике из-за неработающего cron. Подождите, глюк уйдет через пару дней.
2) в админке почистите базу от игроков не из клана. там даже кнопка такая есть =)
#8307 Vandal81 03 окт 2012, 12:02
http://bw-wot.16mb.com/bw/main.php#tabs-1 пока глюк сохраняется

А вот нажатие кнопки "Удалить" игроков которые не входят в текущий состав клана, приводит к ошибке Array ( [0] => 42S02 [1] => 1146 [2] => Table 'u757307579_bwall.players' doesn't exist
#8310 shw 03 окт 2012, 15:04
Столкнулся с проблемкой:

Notice: Undefined offset: 246 in /home/avt/public_html/stat/function/func_time.php on line 447 в количестве "дофига" (первая цифра варьируется)

строка выпадает на function new_tanks. привожу листинг 446-447 строчки:
Код: Выделить всёif($vals[$first][$key] == 0 && $val > 0){
  $new[$tank_name[($tmp[0] - 1)]['tank']] = $vals[0]['account_id'];

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

upd1. чистка таблички "tanks" привела к интересным последствиям - раньше в табличке начинались записи с id=80 и т.д. , сейчас с id=277.
#8312 Exinaus 03 окт 2012, 15:34
Я уже находил эту ошибку.
Связана с тем что в базе данных, в айди танков, могут быть пропуски цифр. Исправляется вот так:
Надо найти код:
Код: Выделить всё        $sql = "SELECT * FROM tanks ORDER BY id ASC;";
        $q = $db->prepare($sql);
        if ($q->execute() == TRUE) {
            $tank_name = $q->fetchAll();
        } else {
            print_r($q->errorInfo());
            die();
        }


И заменить на:

Код: Выделить всё        $sql = "SELECT * FROM tanks ORDER BY id ASC;";
        $q = $db->prepare($sql);
        if ($q->execute() == TRUE) {
            $tank_name_tmp = $q->fetchAll(PDO::FETCH_ASSOC);
        } else {
            print_r($q->errorInfo());
            die(38);
        }
        foreach($tank_name_tmp as $tmp) {
          $tank_name[$tmp['id']] = $tmp;
        }
        unset($tank_name_tmp);


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

По хорошему конечно надо бы избавится от использования id танков, слишком ненадежный и вариативный параметр.
#8314 shw 03 окт 2012, 16:19
Не-не-не-не. я так понял, что случайно затер содержимое таблицы "tanks", видимо когда выставил левый id клана и почистил базу от левых игроков. (перепутал админки тестового и основного сервера). В том клане один человек с парой боев на МС-1.
Потом заметил, что админка не та, заново указал id старого клана и понеслась.

Посмотрев немного базу, получилось примерно следующее: "tanks" был вычищен, туда были записаны куча танков, но с новыми ID, а вот
col_rating_tank_*, col_tank_*, rating_tank_*, tank_* остались с записями старых id с самой первой загрузки базы.
решилось очисткой 21 базы =)
посмотрим что крон скажет.
#8319 Vandal81 03 окт 2012, 17:38
shw писал(а): 2) в админке почистите базу от игроков не из клана. там даже кнопка такая есть =)


Как это сделать?) нажатие на кнопку приводит к ошибке)

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

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

Реклама | Adv
cron