StressWeb статистика ПвП, Пк, Клан

Wolverine

Пляшущий с бубном
Участник
Сообщения
104
Розыгрыши
0
Решения
1
Репутация
50
Реакции
20
Баллы
280
Хроники
  1. Chaotic Throne: High Five
Сборка
L2J Eternity
Здравствуйте уважаемые форумчане.
пожалуйста кто сможет помочь
Хочу вывести в статистику топ Игроков в 1 строку сразу ПвП, Пк и Клан игрока
ПвП и Пк выводится с помощью модуля "pvptop" в этот же модуль как сделать чтобы и имя клана персонажа выводилось?
1.jpg
pvptop >>>
Код:
<?php
/**
 * STRESS WEB
 * @author S.T.R.E.S.S.
 * @copyright 2008 - 2012 STRESS WEB
 * @version 13
 * @web http://stressweb.ru
 */
if ( !defined("STRESSWEB") )
    die( "Access denied..." );

/******************************
* НАСТРОЙКА МОДУЛЯ
******************************/
$T_ENABLE = true; // вкл/выкл модуль
$T_COUNT = 5; // количество результатов
$T_SID = 1; // ID сервера с которого выводить результаты
$T_CACHE = 0; // время кеширования в минутах, 0 - отключить
/******************************
* ВЫВОД РЕЗУЛЬТАТОВ
******************************/
if ( !$T_ENABLE )
    $tpl->SetResult( 'pvptop' );
else {
    if ( $pvptop = $controller->GetCache( 'mod_pvptop' ) )
        $tpl->SetResult( 'pvptop', $pvptop );
    else
    {

        $db->gdb( $T_SID );

        $T_SEL = $gdb[$T_SID]->query( "SELECT `char_name`,`pvpkills`,`pkkills` FROM `characters` ORDER BY `pvpkills` DESC, `pkkills` DESC LIMIT {$T_COUNT}" );
        if ( $gdb[$T_SID]->num_rows($T_SEL) > 0 )
        {
            $T_N = 1;
            while ( $T_RESULT = $gdb[$T_SID]->fetch($T_SEL) ) {
                $tpl->LoadView( 'pvptop' );
                $tpl->Block( 'main', false );
                $tpl->Block( 'item' );
                $tpl->Set( 'n', $T_N );
                $tpl->Set( 'char_name', $T_RESULT['char_name'] );
                $tpl->Set( 'pvp', $T_RESULT['pvpkills'] );
                $tpl->Set( 'pk', $T_RESULT['pkkills'] );
                $tpl->Build( 'pvptop_item' );
                $T_N++;
            }
            $tpl->LoadView( 'pvptop' );
            $tpl->Block( 'item', false );
            $tpl->Block( 'main' );
            $tpl->Set( 'item', $tpl->GetResult('pvptop_item', true) );
            $tpl->Build( 'pvptop' );
        } else
            $tpl->SetResult( 'pvptop' );
        if ( $T_CACHE > 0 )
        {
            $controller->SetCache( 'mod_pvptop', $tpl->GetResult('pvptop'), $T_CACHE );
        }
    }
}

?>
 

$T_SEL = $gdb[$T_SID]->query( "SELECT `char_name`,`pvpkills`,`pkkills` FROM `characters` ORDER BY `pvpkills` DESC, `pkkills` DESC LIMIT {$T_COUNT}" );

здесь сделать join для имени клана

после этой строки
$tpl->Set( 'pk', $T_RESULT['pkkills'] );

добавить result с именем итоговой строки

пример подобного запроса для сборки на базе люцеры, БД PostgreSQL (для MySQL надо будет немного переписать)

Код:
SELECT "characters"."char_name", "characters"."level", "characters"."sex", "characters"."online",  "characters"."pvpkills", "clan_data"."clan_name" 
        FROM "characters" 
        LEFT JOIN "clan_data" ON "characters"."clanid" = "clan_data"."clan_id" 
        ORDER BY pvpkills desc;

дополнительные поля добавите сами, если потребуются
 
Bloomfield, Спасибо большое за ответ.
я в кодах не разбираюсь но буду стараться сделать это, будет уроком для меня

Код:
        $T_SEL = $gdb[$T_SID]->query( "SELECT characters.char_name as `char_name`, characters.pvpkills as `pvpkills`,characters.pkkills as  `pkkills`, clan_data.clan_name FROM `characters` LEFT JOIN `clan_data` on clan_data.clan_id = clan_data.clan_id ORDER BY `pvpkills` DESC, `pkkills` DESC LIMIT {$T_COUNT}" );
вот так сделал вроде получилось. Правильно сделано подскажите плиз:
 

Вложения

  • 2.jpg
    2.jpg
    517,8 КБ · Просмотры: 31
Назад
Сверху Снизу