Сложно сделать такой так под IPS? - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

СвернутьПрикрепленные теги

Теги не найдены

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

Сложно сделать такой так под IPS?

#1 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 23 Август 2018 - 18:18

Здравствуйте. Вот этот файл отвечает за обновление статистики на моем игровом сервере. Мне нужно сделать его в виде таска на IPS.

Вложений


0

#2 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 535
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 386
  • IPB version:I have no IPB
 

Отправлено 24 Август 2018 - 13:39

Если файл обновления статистики доступен публично, то просто делайте к нему запрос.
0

#3 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 24 Август 2018 - 14:17

Не понял
0

#4 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 24 Август 2018 - 15:16

Цитата

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN stats_games g ON g.id = gameid WHERE w3p.category=:c' at line 1


    foreach($db::i('stats')->select('g.*', ['stats_w3mmdplayers', 'w3p'], array('INNER JOIN stats_games g ON g.id = gameid
                 WHERE w3p.category=:category 
                   AND w3p.gameid NOT IN ( SELECT gameid FROM stats_games_scored)
                   AND g.gamename NOT LIKE %dota%
              GROUP BY w3p.gameid 
              ORDER BY w3p.gameid 
                 LIMIT 10'), null, \IPS\Settings::i()->score_calculate_dota_max_games) as $unscored) {
        $scoredGames[] = $unscored['gameid'];


чего не таке?
0

#5 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 24 Август 2018 - 18:59

Не получается и всё. Пожалуйста, сделайте мне вот такой запрос.

Цитата

SELECT g.*
FROM stats_w3mmdplayers w3p
INNER JOIN stats_games g ON g.id = gameid
WHERE w3p.category=:category
AND w3p.gameid NOT IN ( SELECT gameid FROM stats_games_scored)
AND g.gamename NOT LIKE '%dota%'
GROUP BY w3p.gameid
ORDER BY w3p.gameid
LIMIT 10


тут

        $gamesQ = \IPS\DB::i('stats')->select('g.*', ['stats_w3mmdplayers', 'w3p'], array('w3p.category=category'), null, 5);
        $gamesQ->join(['stats_games','g'], ['g.id = gameid'], 'INNER');

0

#6 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 24 Август 2018 - 20:12

Я разобрался, вроде работает без этого AND g.gamename NOT LIKE '%dota%' как мне правильно вставить NOT LIKE сюда?

        $gamesQ = \IPS\DB::i('stats')->select('g.*', ['stats_w3mmdplayers', 'w3p'], array('w3p.category=category AND w3p.gameid NOT IN ( SELECT gameid FROM stats_games_scored)
                   AND g.gamename NOT LIKE '%dota%' GROUP BY w3p.gameid ORDER BY w3p.gameid'), null, 10);
        $gamesQ->join(['stats_games','g'], ['g.id = gameid'], 'INNER');

0

#7 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 25 Август 2018 - 19:34

Так. Сутки вожусь, с выше указанными вопросами я справился, сейчас вот застрял и не могу понять в чем проблема, часа 4 копаю одно и тоже. Сразу вопрос, как выводить дебаг?

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

    /**
     * Scores one player
     * @param $player
     * @param $game
     */
    protected function scorePlayer($player, $game)
    {
        try {
            $stats = \IPS\sharedstats\Records\ScoredPlayerW3mmd::load($player['id']);
        } catch(\OutOfRangeException $e) {
            $stats = new \IPS\sharedstats\Records\ScoredPlayerW3mmd;
            $stats->name = $player['name'];
            $stats->server = $player['spoofedrealm'];
        }
            $stats->xp = 10;
            $stats->commends = '123';
        $stats->save();
	}


Ошибка тут следующая:

Цитата

Column 'name' cannot be null


Понятно, что вот это передает пустой результат:

$stats->name = $player['name'];


Почему?

Вложений


Сообщение изменено: TemKa_SD (25 Август 2018 - 19:35)

0

#8 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 25 Август 2018 - 20:00

Карочи заработало, только цикл бесконечный, вместо 10 записей записался миллион, щас буду копать.
0

#9 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 25 Август 2018 - 20:30

Всё норм ))) Работаем дальше... Посмотрите по коду, пойдет?

Сообщение изменено: TemKa_SD (25 Август 2018 - 20:31)

0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 090
  • Регистрация: 20-Март 09
  • Репутация: 2 439
  • IPB version:3.1.x
 

Отправлено 10 Сентябрь 2018 - 20:29

Не очень люблю подзапросы типа NOT IN ( SELECT ... ) По мере возможности старался использовать JOIN

$db->select( 'g.* ', ['stats_w3mmdplayers', 'w3p'], ['gs.gameid IS NULL AND w3p.category=? AND g.gamename NOT LIKE "%dota%"', $category], null, 10, 'w3p.gameid' )
	->join( ['stats_games' 'g'], 'g.id=w3p.gameid', 'INNER' )
	->join( ['stats_games_scored', 'gs'], 'gs.gameid=w3p.gameid', 'LEFT' )

1

#11 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 3 535
  • Регистрация: 26-Октябрь 11
  • Репутация: 1 386
  • IPB version:I have no IPB
 

Отправлено 11 Сентябрь 2018 - 08:16

Просмотреть сообщениеsiv1987 сказал(а):

По мере возможности старался использовать JOIN
Типы нужно писать в верхнем регистре. Это прихоть IPS
0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 9 090
  • Регистрация: 20-Март 09
  • Репутация: 2 439
  • IPB version:3.1.x
 

Отправлено 11 Сентябрь 2018 - 22:13

Поправил. Уже подзабыл.
0

#13 Пользователь не на сайте   TemKa_SD ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 356
  • Регистрация: 16-Январь 18
  • Репутация: 2
  • IPB version:4.1.x
 

Отправлено 12 Сентябрь 2018 - 06:15

Спасибо
0

Сообщить об этой теме:


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


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2018 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна