Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Web обвязка/[help] Помогите разобраться со скриптом статистики
Поиск

[help] Помогите разобраться со скриптом статистики

7 ответов142 просмотровСейчас просматривают: 1
П
Паша

Пользователь

Бывалый

Постов: 129

На форуме с: 14.12.2008

Репутация: +15

Рейтинг: 0

· 16.01.2009, 14:00
В общем такая трабла есть статискика сервера ну там топ игроков топ кланов кто онлай и тп проблема в том что она показываеться задом наперед тоесть не с лучшего на худшее а наоборот

Вот сам код модуля
<script type='text/javascript'>
mytagid = Math.floor( Math.random() * 100 );
document.write("
» Нажмите, чтобы показать текст - нажмите опять, чтобы скрыть... «
Код
<?php
/*
=====================================================
Файл: statistic.php
-----------------------------------------------------
Назначение: статистика
=====================================================
*/
if(!defined('GWE')) { die("Попытка взлома!"); }
require_once ENGINE_DIR.'/inc/parse.class.php';
require_once ENGINE_DIR.'/data/la2dbconfig.php'; // подключение файла с параметрами для BD игрового сервера

$countserv = $config_game['count_servers'];
$charname = array();

$parse = new ParseFilter();
$parse->safe_mode = true;
$stop_stat = FALSE;

if (isset ($_GET['doaction'])) $doaction= intval($_GET['doaction']); else $doaction = "1";
if (isset ($_POST['chserv'])) $chserv= intval($_POST['chserv']); else $chserv = "1";

if (!$user_group[$member_id['user_group']]['allow_statistic']) {
    msgbox ($lang['all_err_1'], $lang['statistic_err_1']);
    $stop_stat = TRUE;
}

$tpl->load_template('statistic.tpl');
$tpl->set('[usertop100]',"<a href=\"$PHP_SELF?do=statistic&doaction=1\">");
$tpl->set('[/usertop100]',"</a>");
$tpl->set('[useronline]',"<a href=\"$PHP_SELF?do=statistic&doaction=2\">");
$tpl->set('[/useronline]',"</a>");
$tpl->set('[clanstatus]',"<a href=\"$PHP_SELF?do=statistic&doaction=3\">");
$tpl->set('[/clanstatus]',"</a>");
$tpl->set('[sevensings]',"<a href=\"$PHP_SELF?do=statistic&doaction=4\">");
$tpl->set('[/sevensings]',"</a>");


if ($doaction == "1" OR $doaction == "2" OR $doaction == "3" AND !$stop_stat) {
    $statuser = "
    </td><table width=\"100%\" border=\"0\" bordercolor=\"#000000\">
    <tr><td colspan=\"6\" align=\"left\">
    <form method=\"post\" name=\"doit\" action=\"$PHP_SELF?do=statistic&doaction=".$doaction."\">
    <b>Сервер</b> 
    <select name=\"chserv\">";
    for($i=1; $i<=$countserv; $i++) {
       if ($i == $chserv) {
         $statuser .= "<option selected=\"selected\" value=\"".$i."\">".$config_servers[$i]['game_name']."</option>\n";
       } else {
         $statuser .= "<option value=\"".$i."\">".$config_servers[$i]['game_name']."</option>\n";
       } //end if
    } //end for
    $statuser .= "
    </select><input type=\"submit\" value=\"Ok\" /></form>
    </td>
    </tr>";
    if ($doaction == "1" OR $doaction == "2") {
        $statuser .= "
          <tr align=\"center\" bgcolor=\"#CCCCCC\">
        <td width=\"30\"><b>№ </b></td>
        <td> <b>Ник</b> </td>
        <td> <b>Класс</b> </td>
        <td width=\"80\"> <b>Геймтайм</b> </td>
        <td width=\"60\"> <b>PvP/PK</b> </td>
        <td> <b>Клан</b> </td>
          </tr>";
    } elseif ($doaction == "3") {
        $statuser .= "
          <tr align=\"center\" bgcolor=\"#CCCCCC\">
        <td width=\"30\">№</td>
        <td>Название</td>
        <td width=\"30\">Lv.</td>
        <td>Лидер</td>
        <td width=\"70\">Репут.</td>
        <td>Альянс</td>
          </tr>";
    }
        if(!$db_g->connect($config_servers[$chserv]['game_user'],$config_servers[$chserv]['game_pass'], $config_servers[$chserv]['game_base'], $config_servers[$chserv]['game_host'], 0)) {    
            msgbox ($lang['all_err_1'], $lang['db_err_1']);
        } else {
            if($doaction == "1") {
        $queryl2 = "SELECT char_name,pvpkills,pkkills,onlinetime,(SELECT clan_name FROM clan_data WHERE characters.clanid=clan_data.clan_id) AS clan,(SELECT ClassName FROM char_templates WHERE characters.classid=char_templates.ClassId) as class FROM characters WHERE accesslevel<50 ORDER BY level LIMIT 0 , 100";
            } elseif($doaction == "2") {
        $queryl2 = "SELECT char_name,pvpkills,pkkills,onlinetime,(SELECT clan_name FROM clan_data WHERE characters.clanid=clan_data.clan_id) AS clan,(SELECT ClassName FROM char_templates WHERE characters.classid=char_templates.ClassId) as class FROM characters WHERE online='1' AND accesslevel<50 ORDER BY level";
            } elseif($doaction == "3") {
        $queryl2 = "SELECT clan_name,clan_level,ally_name,(SELECT char_name FROM characters WHERE characters.obj_Id=clan_data.leader_id) AS leader, reputation_score FROM clan_data ORDER BY clan_level DESC";
            }
            $row = $db_g->query($queryl2);
            $k=1;
            if ($doaction == "1" OR $doaction == "2") {
                while($temp = $db_g->get_row($row)) {
                $charname[$k]=$temp["char_name"];
                $onlinetime[$k]=floor($temp["onlinetime"]/60) ." m";
                $pvpkills[$k]=$temp["pvpkills"];
                $pkkills[$k]=$temp["pkkills"];
                $clan[$k]=$temp["clan"];
                $class[$k]=$temp["class"];
                $statuser .= "
                  <tr>
                       <td>".$k."</td>
                        <td>".$charname[$k]."</td>
                        <td>".$class[$k]."</td>
                        <td align=\"center\">".$onlinetime[$k]."</td>
                        <td align=\"center\">".$pvpkills[$k]."/".$pkkills[$k]."</td>
                    <td align=\"center\">".$clan[$k]."</td>
                </tr>
                ";
                $k++;
                }//end while
            } elseif ($doaction == "3") {
                while($temp = $db_g->get_row($row)) {
                $clan_name[$k]=$temp["clan_name"];
                $clan_level[$k]=$temp["clan_level"];
                $ally_name[$k]=$temp["ally_name"];
                $leader[$k]=$temp["leader"];
                $reputation_score[$k]=$temp["reputation_score"];
                $statuser .= "
                  <tr>
                       <td>".$k."</td>
                        <td>".$clan_name[$k]."</td>
                        <td align=\"center\">".$clan_level[$k]."</td>
                        <td>".$leader[$k]."</td>
                        <td align=\"center\">".$reputation_score[$k]."</td>
                    <td align=\"center\">".$ally_name[$k]."</td>
                </tr>
                ";
                $k++;
                }//end while
            }
            //--------------------------------------
            $db->connect(DBUSER, DBPASS, DBNAME, DBHOST); //Переключаемся на БД Сайта
        } //end if    
} elseif ($doaction == "4" AND !$stop_stat) {
    $statuser = "
    <table width=\"400\" border=\"0\">
    <tr><td align=\"left\">
    <form method=\"post\" name=\"doit\" action=\"$PHP_SELF?do=statistic&doaction=".$doaction."\">
    <b>Сервер</b> 
    <select name=\"chserv\">";
    for($i=1; $i<=$countserv; $i++) {
       if ($i == $chserv) {
         $statuser .= "<option selected=\"selected\" value=\"".$i."\">".$config_servers[$i]['game_name']."</option>\n";
       } else {
         $statuser .= "<option value=\"".$i."\">".$config_servers[$i]['game_name']."</option>\n";
       } //end if
    } //end for
    $statuser .= "
    </select><input type=\"submit\" value=\"Ok\" /></form>
    </td></tr>";
    if(!$db_g->connect($config_servers[$chserv]['game_user'],$config_servers[$chserv]['game_pass'], $config_servers[$chserv]['game_base'], $config_servers[$chserv]['game_host'], 0)) {    
        msgbox ($lang['all_err_1'], $lang['db_err_1']);
    } else {
        $query1 = "SELECT COUNT(*) AS chars FROM seven_signs WHERE cabal='dawn'";
        $query2 = "SELECT COUNT(*) AS chars FROM seven_signs WHERE cabal='dusk'";
        $query3 = "SELECT * FROM seven_signs_status";
        $row = $db_g->query($query3);
        $festival = $db_g->get_row($row);
        $avarice = $festival["avarice_dawn_score"]+$festival["avarice_dusk_score"];
        $gnosis = $festival["gnosis_dawn_score"]+$festival["gnosis_dusk_score"];
        $strife = $festival["strife_dawn_score"]+$festival["strife_dusk_score"];
        $day = $festival["date"];
        switch($festival["active_period"])
        {
            case "0":
            {
                $active_period="Подготовка";
                break;
            }
            case "1":
            {
                $active_period="Соревнование. День <b>$day</b>";
                break;
            }
            case "2":
            {
                $active_period="Вычисление";
                break;
            }
            case "3":
            {
                $active_period="Действие печати. День <b>$day</b>";
                break;
            }
        } //end switch
        $row = $db_g->query($query1);
        $dawn = $db_g->get_row($row);
        $row = $db_g->query($query2);
        $dusk = $db_g->get_row($row);
        
        $all  = $dawn["chars"] + $dusk["chars"];
        if($all == 0) { $all = 1; }
        $oned = round(300/$all, 2);
        $dawn_chars = floor($dawn["chars"] * $oned);
        $dawn_chars_percent = round($dawn_chars*(100/300), 2);
        if($dawn_chars == 0) { $dawn_chars = 1; }
        $dusk_chars = floor($dusk["chars"] * $oned);
        $dusk_chars_percent = round($$dusk_chars*(100/300), 2);
        if($dusk_chars == 0) { $dusk_chars = 1; }
        
        $allstone = $festival["dawn_stone_score"] + $festival["dusk_stone_score"];
        if($allstone == 0) { $allstone = 1; }
        $onedstone = round(300/$allstone, 2);
        $dawn_stone = floor($festival["dawn_stone_score"] * $onedstone);
        $dawn_stone_percent = round($dawn_stone*(100/300), 2);
        if($dawn_stone == 0) { $dawn_stone = 1; }
        $dusk_stone = floor($festival["dusk_stone_score"] * $onedstone);
        $dusk_stone_percent = round($dusk_stone*(100/300), 2);
        if($dusk_stone == 0) { $dusk_stone = 1; }
        $owners["0"]="нет";
        $owners["1"]="dusk";
        $owners["2"]="dawn";
    $statuser .= "
    <tr><td> </td></tr>
      <tr><td><table width=\"400\" border=\"0\">
    <tr><td colspan=\"4\" width=\"100\"><strong>Период: ".$active_period."</strong></td></tr>
    <tr><td colspan=\"4\"> </td></tr>
    <tr>
      <td><strong>Игроки</strong></td>
      <td align=\"left\" width=\"100\">0 %</td>
      <td align=\"center\" width=\"100\">50 %</td>
      <td align=\"right\" width=\"100\">100 %</td>
    </tr>
    <tr>
      <td>Dawn (".$dawn_chars_percent." %):</td>
      <td colspan=\"3\"><img src=\"".$config['http_home_url']."templates/{$config['skin']}/gweimages/poll1.gif\" height=\"10\" width=\"".$dawn_chars."\" style=\"border:1px solid black\"></td>
      </tr>
    <tr>
      <td>Dusk (".$dusk_chars_percent." %):</td>
      <td colspan=\"3\"><img src=\"".$config['http_home_url']."templates/{$config['skin']}/gweimages/poll2.gif\" height=\"10\" width=\"".$dusk_chars."\" style=\"border:1px solid black\"></td>
      </tr>
    <tr>
      <td colspan=\"4\"> </td>
      </tr>
    <tr>
      <td><strong>Камни</strong></td>
      <td align=\"left\" width=\"100\">0 %</td>
      <td align=\"center\" width=\"100\">50 %</td>
      <td align=\"right\" width=\"100\">100 %</td>
    </tr>
    <tr>
      <td>Dawn (".$dusk_stone_percent." %):</td>
      <td colspan=\"3\"><img src=\"".$config['http_home_url']."templates/{$config['skin']}/gweimages/poll3.gif\" height=\"10\" width=\"{$dusk_stone}\" style=\"border:1px solid black\"></td>
    </tr>
    <tr>
      <td>Dusk (".$dusk_stone_percent." %):</td>
      <td colspan=\"3\"><img src=\"".$config['http_home_url']."templates/{$config['skin']}/gweimages/poll4.gif\" height=\"10\" width=\"{$dusk_stone}\" style=\"border:1px solid black\"></td>
      </tr>
  </table></td></tr>
  <tr><td> </td></tr>
  <tr><td><table width=\"400\" border=\"0\">
    <tr>
      <td colspan=\"2\" width=\"140\"><strong>Печати</strong></td>
      </tr>
    <tr>
      <td colspan=\"2\"> </td>
    </tr>
    <tr>
      <td colspan=\"2\"><strong>Seal of Avarice</strong></td>
    </tr>
    <tr>
      <td width=\"80\">Dusk:</td>
      <td align=\"left\">".$festival["avarice_dusk_score"]."</td>
    </tr>
    <tr>
      <td width=\"80\">Dawn:</td>
      <td align=\"left\">".$festival["avarice_dawn_score"]."</td>
    </tr>
    <tr>
      <td>Всего:</td>
      <td align=\"left\">".($festival["avarice_dawn_score"]+$festival["avarice_dusk_score"])."</td>
    </tr>
    <tr>
      <td>Владелец:</td>
      <td align=\"left\">".$owners[$festival["avarice_owner"]]."</td>
    </tr>
    <tr>
      <td colspan=\"2\"> </td>
      </tr>
    <tr>
      <td colspan=\"2\"><strong>Seal of Gnosis</strong></td>
      </tr>
    <tr>
      <td>Dusk:</td>
      <td align=\"left\">".$festival["gnosis_dusk_score"]."</td>
    </tr>
    <tr>
      <td>Dawn:</td>
      <td align=\"left\">".$festival["gnosis_dawn_score"]."</td>
    </tr>
    <tr>
      <td>Всего:</td>
      <td align=\"left\">".($festival["gnosis_dawn_score"]+$festival["gnosis_dusk_score"])."</td>
    </tr>
    <tr>
      <td>Владелец:</td>
      <td align=\"left\">".$owners[$festival["gnosis_owner"]]."</td>
    </tr>
    <tr>
      <td colspan=\"2\"> </td>
      </tr>
    <tr>
      <td colspan=\"2\"><strong>Seal of Strife</strong></td>
      </tr>
    <tr>
      <td>Dusk:</td>
      <td align=\"left\">".$festival["strife_dusk_score"]."</td>
    </tr>
    <tr>
      <td>Dawn:</td>
      <td align=\"left\">".$festival["strife_dawn_score"]."</td>
    </tr>
    <tr>
      <td>Всего:</td>
      <td align=\"left\">".($festival["strife_dawn_score"]+$festival["strife_dusk_score"])."</td>
    </tr>
    <tr>
      <td>Владелец:</td>
      <td align=\"left\">".$owners[$festival["strife_owner"]]."</td>
    </tr>
  </table></td></tr>  
</table>";
        //--------------------------------------
        $db->connect(DBUSER, DBPASS, DBNAME, DBHOST); //Переключаемся на БД Сайта
    } //end if    
} else {
    msgbox ($lang['all_err_1'], $lang['statistic_err_2']);
    $stop_stat = TRUE;
}
$db->free();
$tpl->set('{stat_user}',$statuser);
$tpl->compile('content');$tpl->clear();
?>

скрыть
");
document.close();
0
Wh1tePower
Wh1tePower

Пользователь

Ветеран

Постов: 846

На форуме с: 18.09.2007

Репутация: +623

Рейтинг: 0

· 17.01.2009, 00:42

accesslevel<50 ORDER BY level LIMIT 0 , 100"; тут 0 и 100 попробуй местами поменять... Хотя я точно хз...

— La2Psy.ru [ADM]Wh1tePower...

0
П
Паша

Пользователь

Бывалый

Постов: 129

На форуме с: 14.12.2008

Репутация: +15

Рейтинг: 0

· 17.01.2009, 06:26

не эт точно не то это означает сколько будет показываться в рейтинге топ сейчас стоит 100 значит и встатистике будет 100 но всеравно спасибку ткнул за внимание!! блин ппц проблемка елементарная там гдета нужно заменить совсем смальца а я смотрю на скрипт и не вижу ппц хелп люди хеелп

0
Дмитрий
Дмитрий

Пользователь

Ветеран

Постов: 834

На форуме с: 30.05.2007

Репутация: +632

Рейтинг: 0

· 17.01.2009, 08:37

Что вы за люди ok.gif

ORDER BY сортирует строки запросов по столбцу XXXXX в прямом (ASC) или обратном порядке (DESC)

DESC замени на ASC

WebDeveloper сервера DARKWORLD

0
П
Паша

Пользователь

Бывалый

Постов: 129

На форуме с: 14.12.2008

Репутация: +15

Рейтинг: 0

· 17.01.2009, 09:24

спасибо помогло) просто дело в том что тут блин и небыло указанно в каком порядке сортировать !

0
Дмитрий
Дмитрий

Пользователь

Ветеран

Постов: 834

На форуме с: 30.05.2007

Репутация: +632

Рейтинг: 0

· 17.01.2009, 09:39

ты не внимателен, вот запрос, отвечающий за выборку кланов:

SQL
$queryl2 = "SELECT clan_name,clan_level,ally_name,(SELECT char_name FROM characters WHERE characters.obj_Id=clan_data.leader_id) AS leader, reputation_score FROM clan_data ORDER BY clan_level DESC";
вот сортировка, которая была установлена
SQL
ORDER BY clan_level DESC

WebDeveloper сервера DARKWORLD

0
П
Паша

Пользователь

Бывалый

Постов: 129

На форуме с: 14.12.2008

Репутация: +15

Рейтинг: 0

· 17.01.2009, 10:56

сос статистикой кланов то все нормально меня интересовал вот этот запрос

Код
$queryl2 = "SELECT char_name,pvpkills,pkkills,onlinetime,(SELECT clan_name FROM clan_data WHERE characters.clanid=clan_data.clan_id) AS clan,(SELECT ClassName FROM char_templates WHERE characters.classid=char_templates.ClassId) as class FROM characters WHERE accesslevel<50 ORDER BY level LIMIT 0 , 100";

тут как видиш не установленно сортировки и кстати нужна то как раз в обратном порядке ну всеравно тебе спс разяснил ситуацию

0
Тема закрыта для ответов