• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

[Modern AAC] Injection - Guild statistics V3!

This way you can do it in two queries(it could be done in one query too, but didn't bother to edit the code)

Code:
$allM = $connection->query('SELECT SUM(`level`) as `level1`, AVG(`level`) as `level2`, (SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ORDER BY `level` ASC LIMIT 1) AS `name1`,(SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ORDER BY `level` DESC LIMIT 1) AS `name2`,(SELECT COUNT(*) FROM `guild_invites` WHERE `guild_id` = ' . $guild_id .') AS `invite`, (SELECT COUNT(1) FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') AND online = 1) AS `online`, (SELECT COUNT(`gr`.`id`) FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = ' . $guild_id. ') as `total` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();

Whole script
Code:
<?php
#################################################################################
##                            CONFIGURATION PAGE                               ##
#################################################################################
##              -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =-                  #
## ---------------------------------------------------------------------------- #
## Script created by  Kavvson (http://otland.net/members/kavvson/)              #
## Author & developer:  Kavvson                                                 #
##                                                                              #
## Helpers:             Stian       <http://www.otland.net>                     #
##                      MiPo91      <http://www.otland.net>                     #
#################################################################################
## +--------------------------Guild_View Injection------------------------------+
## | DONE: v.1 & v.2
## | - Fade
## | - Jquery Tabs
## | - Show online members in the guild
## | - Show the total level of members in guild
## | - Show the average level of members in guild
## | - Show the highest level in guild
## | - Show the lowest level in guild
## |
## | DONE: v.3
## | - @DEFINE INJECTION_PATH - path to the folder
## | - Skill ranking (all skills,mlvl experience) credits : http://otland.net/members/mipo91/
## | - Alert Box
## | - Average level script fix .round(value)
## | - Typo fixes
## | - New Functions:
## |  - $get=member($guildMembers);
## |  - $get=invite($invite);
## |  - $get=online($allM);
## |  - $get=level($allM ,$allM2);
## |  - $get=rank($allM3 ,$allM4);
## |  - $get=points($sum);
## +----------------------------------------------------------------------------+
#################################################################################
#################################################################################
## +---------------------------------------------------------------------------
## | Database connection + Specific variables + Importing
## +---------------------------------------------------------------------------
#################################################################################
##########################################
##              Define                  ##
##########################################
## Please write the path to this folder ##
## Else leave it                        ##
##########################################
@DEFINE('INJECTION_PATH', 'injections/guild_view/Advanced Table');
################################
##          Style part        ##
################################
## You might change this part ##
################################
$image_i = '<img style="border: medium none;" src="' . WEBSITE . '/' . INJECTION_PATH . '/images/Golden_Goblet.gif">';
echo '<link rel="stylesheet" href="' . WEBSITE . '/' . INJECTION_PATH . '/jquery.alerts.css" /><script src="' . WEBSITE . '/' . INJECTION_PATH . '/jquery.alerts.js" type="text/javascript"></script>';
########################
##      Connection    ##
########################
## Leave these values ##
########################
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$connection = POT::getInstance()->getDBHandle();
$CI = & get_instance();
$CI->load->helper("url");
$guild_id = $CI->uri->segment(3);
###############
## Variables ##
###############
$skills = array(0 => "Fist Fighting", 1 => "Club Fighting", 2 => "Sword Fighting", 3 => "Axe Fighting", 4 => "Distance Fighting", 5 => "Shielding", 6 => "Fishing");
#################################################################################
## +---------------------------------------------------------------------------
## | Database queries
## +---------------------------------------------------------------------------
#################################################################################
$allM = $connection->query('SELECT SUM(`level`) as `level1`, AVG(`level`) as `level2`, (SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ORDER BY `level` ASC LIMIT 1) AS `name1`,(SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ORDER BY `level` DESC LIMIT 1) AS `name2`,(SELECT COUNT(*) FROM `guild_invites` WHERE `guild_id` = ' . $guild_id .') AS `invite`, (SELECT COUNT(1) FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') AND online = 1) AS `online`, (SELECT COUNT(`gr`.`id`) FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = ' . $guild_id. ') as `total` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();
$a = round($allM[1]);
$b = $allM[0];

$sum = $a + $b + $allM[6] + $allM[2];
#################################################################################
## +---------------------------------------------------------------------------
## | Functions
## +---------------------------------------------------------------------------
#################################################################################
function member($allM) {
    if ($allM[6] == 1) {
        echo "The Guild has <p style='color:green;display:inline;'><b>" . $allM[6] . "</b></p> member";
    } else {
        echo "The Guild has <p style='color:green;display:inline;'><b>" . $allM[6] . "</b></p> members";
    }
}
function invite($allM) {
    if ($allM[4] == 0) {
        echo "No members are invited";
    } elseif ($allM[4] == 1) {
        echo "One member is invited";
    } else {
        echo "<p style='color:green;display:inline;'><b>" . $allM[4] . "</b></p> Members are currently invited";
    }
}
function online($allM) {
    if ($allM[5] == 0) {
        echo "No one is online";
    } elseif ($allM[5] == 1) {
        echo "One member is invited";
    } else {
        echo "<p style='color:green;display:inline;'><b>" . $allM[5] . "</b></p> Members are currently online";
    }
}
function level($allM) {
    echo "<p style='color:green;display:inline;'><b>" . $allM[0] . "</b></p> Total level in guild<br>";
    echo "<p style='color:green;display:inline;'><b>" . round($allM[1]) . "</b></p> Average level of all members in the guild";
}
function rank($allM) {
    echo "<p style='color:green;display:inline;'><b>" . $allM[2] . "</b></p> Has the best level in guild<br>";
    echo "<p style='color:green;display:inline;'><b>" . $allM[3] . "</b></p> Has the lowest level in guild";
}
function points($sum) {
    echo "<br><p style='color:green;display:inline;'><b>" . $sum . "</b></p> guild points";
}
?>

<a id="alert_button" href="#">Highscores</a>
<style type="text/css">
.ui-tabs {
    height: !auto;
}
</style>
<script>
    $(document).ready(function () {
        $('#serverStats').fadeIn(6000)
    });
    $("a#alert_button").click(function () {
        jAlert('<?php echo "<div class=i_head>Skills</div><hr><table align=center>";
foreach ($skills as $key => $value) {
    $allM5 = $connection->query('
        SELECT`p`.`name`AS`Name`, `ps`.`value`AS`Sword`, `p`.`maglevel`, `p`.`experience`FROM`players`AS`p`JOIN`player_skills`AS`ps`WHERE`ps`.`player_id` = `p`.`id`AND`ps`.`skillid` = ' . $key . '
        AND`rank_id`IN(SELECT`id`FROM`guild_ranks`WHERE`guild_id` = ' . $guild_id . ') ORDER BY`Sword`DESC Limit 1 ')->fetch();
    echo "<tr align=center><td><img style=\"border:medium none;\" src=\"" . WEBSITE . "/" . INJECTION_PATH . "/images/skills/" . $key . ".png\"></td><td><div class=i_name>" . $allM5[0] . "</div></td><td><div class=i_skill>" . $allM5[1] . " : " . $value . "</div></td></tr>";
}
echo "</table><div class=i_head>Experienice</div><hr><table align=center>";
echo "<tr align=center><td><img style=\"border:medium none;\" src=\"" . WEBSITE . "/" . INJECTION_PATH . "/images/skills/7.png\"></td><td><div class=i_name>" . $allM5[0] . "</div></td><td><div class=i_skill>" . $allM5[3] . " : Experience</div></td></tr>";
echo "<tr align=center><td><img style=\"border:medium none;\" src=\"" . WEBSITE . "/" . INJECTION_PATH . "/images/skills/8.png\"></td><td><div class=i_name>" . $allM5[0] . "</div></td><td><div class=i_skill>" . $allM5[2] . " : Magic Level</div></td></tr>"; ?></table>', '<?php echo $image_i; ?> Skill Ranking <?php echo $image_i; ?>');
    });
</script>
<script>
$(function () {
    $("#tabs").tabs();
});
</script>

    <div id="serverStats" style="display:none;">
        <div id='tabs'>
    <ul>
        <li><a href="#general">General Informations</a></li>
        <li><a href="#statistics">Statistics</a></li>
        <li><a href="#glory">Fame Hall</a></li>
    </ul>
    <div id='general'>
        <?php $get = member($allM); ?>
        <br>
            <?php $get = invite($allM); ?>
            <br>
                <?php $get = online($allM); ?>
    </div>
            <div id='statistics'>
                <?php $get = level($allM); ?>
            </div>
            <div id='glory'>
                <?php $get = rank($allM); $get = points($sum); ?>
            </div>
        </div>
    </div>
    <br>
        <br>
            <br>
 
Wow You are a pro ;). I request some mod to write the script on the 1 page!
 
Suggestion, it should show how many premium players are there.

Here is something that might help.
SELECT * FROM `accounts` WHERE accounts.id in (select players.account_id from players inner join guild_ranks on guild_ranks.id = players.rank_id where guild_ranks.guild_id = 196)
 
Last edited:
I don't really see the point of checking how many premium players there are, because almost every server gives free premium to players... But if you really want to have it, you can do it with this :
Code:
(SELECT COUNT(`a`.`premdays`) FROM `accounts` AS `a`, `players` AS `p` WHERE `a`.`id` = `p`.`account_id` AND `a`.`premdays` > 0 AND `p.rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ')) AS `premium`
Paste it just before this
Code:
FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();

And you can call it with
Code:
echo "There are currently " . $allM[7] . " premium players in guild";
 
MiPo91, it says:

PHP:
$allM1 = $connection->query('SELECT SUM(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();
$allM2 = $connection->query('SELECT AVG(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();

There are two querys the same as
PHP:
FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();

How should it look :S?
 
MiPo91, it says:

PHP:
$allM1 = $connection->query('SELECT SUM(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();
$allM2 = $connection->query('SELECT AVG(`level`) as `level` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();

There are two querys the same as
PHP:
FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();

How should it look :S?

Code:
<?php
#################################################################################
##                            CONFIGURATION PAGE                               ##
#################################################################################
##              -= YOU MAY NOT REMOVE OR CHANGE THIS NOTICE =-                  #
## ---------------------------------------------------------------------------- #
## Script created by  Kavvson (http://otland.net/members/kavvson/)              #
## Author & developer:  Kavvson                                                 #
##                                                                              #
## Helpers:             Stian       <http://www.otland.net>                     #
##                      MiPo91      <http://www.otland.net>                     #
#################################################################################
## +--------------------------Guild_View Injection------------------------------+
## | DONE: v.1 & v.2
## | - Fade
## | - Jquery Tabs
## | - Show online members in the guild
## | - Show the total level of members in guild
## | - Show the average level of members in guild
## | - Show the highest level in guild
## | - Show the lowest level in guild
## |
## | DONE: v.3
## | - @DEFINE INJECTION_PATH - path to the folder
## | - Skill ranking (all skills,mlvl experience) credits : http://otland.net/members/mipo91/
## | - Alert Box
## | - Average level script fix .round(value)
## | - Typo fixes
## | - New Functions:
## |  - $get=member($guildMembers);
## |  - $get=invite($invite);
## |  - $get=online($allM);
## |  - $get=level($allM ,$allM2);
## |  - $get=rank($allM3 ,$allM4);
## |  - $get=points($sum);
## +----------------------------------------------------------------------------+
#################################################################################
#################################################################################
## +---------------------------------------------------------------------------
## | Database connection + Specific variables + Importing
## +---------------------------------------------------------------------------
#################################################################################
##########################################
##              Define                  ##
##########################################
## Please write the path to this folder ##
## Else leave it                        ##
##########################################
@DEFINE('INJECTION_PATH', 'injections/guild_view/Advanced Table');
################################
##          Style part        ##
################################
## You might change this part ##
################################
$image_i = '<img style="border: medium none;" src="' . WEBSITE . '/' . INJECTION_PATH . '/images/Golden_Goblet.gif">';
echo '<link rel="stylesheet" href="' . WEBSITE . '/' . INJECTION_PATH . '/jquery.alerts.css" /><script src="' . WEBSITE . '/' . INJECTION_PATH . '/jquery.alerts.js" type="text/javascript"></script>';
########################
##      Connection    ##
########################
## Leave these values ##
########################
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$connection = POT::getInstance()->getDBHandle();
$CI = & get_instance();
$CI->load->helper("url");
$guild_id = $CI->uri->segment(3);
###############
## Variables ##
###############
$skills = array(0 => "Fist Fighting", 1 => "Club Fighting", 2 => "Sword Fighting", 3 => "Axe Fighting", 4 => "Distance Fighting", 5 => "Shielding", 6 => "Fishing");
#################################################################################
## +---------------------------------------------------------------------------
## | Database queries
## +---------------------------------------------------------------------------
#################################################################################
$allM = $connection->query('SELECT SUM(`level`) as `level1`, AVG(`level`) as `level2`, (SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ORDER BY `level` ASC LIMIT 1) AS `name1`,(SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ORDER BY `level` DESC LIMIT 1) AS `name2`,(SELECT COUNT(*) FROM `guild_invites` WHERE `guild_id` = ' . $guild_id .') AS `invite`, (SELECT COUNT(1) FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') AND online = 1) AS `online`, (SELECT COUNT(`gr`.`id`) FROM `players` AS `p` LEFT JOIN `guild_ranks` AS `gr` ON `gr`.`id` = `p`.`rank_id` WHERE `gr`.`guild_id` = ' . $guild_id. ') as `total`,(SELECT COUNT(`a`.`premdays`) FROM `accounts` AS `a`, `players` AS `p` WHERE `a`.`id` = `p`.`account_id` AND `a`.`premdays` > 0 AND `p`.`rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ')) AS `premium` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = ' . $guild_id . ') ')->fetch();
$a = round($allM[1]);
$b = $allM[0];
$sum = $a + $b + $allM[6] + $allM[2];
#################################################################################
## +---------------------------------------------------------------------------
## | Functions
## +---------------------------------------------------------------------------
#################################################################################
function member($allM) {
    if ($allM[6] == 1) {
        echo "The Guild has <p style='color:green;display:inline;'><b>" . $allM[6] . "</b></p> member";
    } else {
        echo "The Guild has <p style='color:green;display:inline;'><b>" . $allM[6] . "</b></p> members";
    }
}
function invite($allM) {
    if ($allM[4] == 0) {
        echo "No members are invited";
    } elseif ($allM[4] == 1) {
        echo "One member is invited";
    } else {
        echo "<p style='color:green;display:inline;'><b>" . $allM[4] . "</b></p> Members are currently invited";
    }
}
function online($allM) {
    if ($allM[5] == 0) {
        echo "No one is online";
    } elseif ($allM[5] == 1) {
        echo "One member is invited";
    } else {
        echo "<p style='color:green;display:inline;'><b>" . $allM[5] . "</b></p> Members are currently online";
    }
}
function level($allM) {
    echo "<p style='color:green;display:inline;'><b>" . $allM[0] . "</b></p> Total level in guild<br>";
    echo "<p style='color:green;display:inline;'><b>" . round($allM[1]) . "</b></p> Average level of all members in the guild";
}
function rank($allM) {
    echo "<p style='color:green;display:inline;'><b>" . $allM[2] . "</b></p> Has the best level in guild<br>";
    echo "<p style='color:green;display:inline;'><b>" . $allM[3] . "</b></p> Has the lowest level in guild";
}
function points($sum) {
    echo "<br><p style='color:green;display:inline;'><b>" . $sum . "</b></p> guild points";
}
function premium($allM) {
	echo "There are currently " . $allM[7] . " premium players in guild";
}

?>

<a id="alert_button" href="#">Highscores</a>
<style type="text/css">
.ui-tabs {
    height: !auto;
}
</style>
<script>
    $(document).ready(function () {
        $('#serverStats').fadeIn(6000)
    });
    $("a#alert_button").click(function () {
        jAlert('<?php echo "<div class=i_head>Skills</div><hr><table align=center>";
foreach ($skills as $key => $value) {
    $allM5 = $connection->query('
        SELECT`p`.`name`AS`Name`, `ps`.`value`AS`Sword`, `p`.`maglevel`, `p`.`experience`FROM`players`AS`p`JOIN`player_skills`AS`ps`WHERE`ps`.`player_id` = `p`.`id`AND`ps`.`skillid` = ' . $key . '
        AND`rank_id`IN(SELECT`id`FROM`guild_ranks`WHERE`guild_id` = ' . $guild_id . ') ORDER BY`Sword`DESC Limit 1 ')->fetch();
    echo "<tr align=center><td><img style=\"border:medium none;\" src=\"" . WEBSITE . "/" . INJECTION_PATH . "/images/skills/" . $key . ".png\"></td><td><div class=i_name>" . $allM5[0] . "</div></td><td><div class=i_skill>" . $allM5[1] . " : " . $value . "</div></td></tr>";
}
echo "</table><div class=i_head>Experienice</div><hr><table align=center>";
echo "<tr align=center><td><img style=\"border:medium none;\" src=\"" . WEBSITE . "/" . INJECTION_PATH . "/images/skills/7.png\"></td><td><div class=i_name>" . $allM5[0] . "</div></td><td><div class=i_skill>" . $allM5[3] . " : Experience</div></td></tr>";
echo "<tr align=center><td><img style=\"border:medium none;\" src=\"" . WEBSITE . "/" . INJECTION_PATH . "/images/skills/8.png\"></td><td><div class=i_name>" . $allM5[0] . "</div></td><td><div class=i_skill>" . $allM5[2] . " : Magic Level</div></td></tr>"; ?></table>', '<?php echo $image_i; ?> Skill Ranking <?php echo $image_i; ?>');
    });
</script>
<script>
$(function () {
    $("#tabs").tabs();
});
</script>

    <div id="serverStats" style="display:none;">
        <div id='tabs'>
    <ul>
        <li><a href="#general">General Informations</a></li>
        <li><a href="#statistics">Statistics</a></li>
        <li><a href="#glory">Fame Hall</a></li>
    </ul>
    <div id='general'>
        <?php $get = member($allM); ?>
        <br />
		<?php $get = invite($allM); ?>
		<br />
		<?php $get = online($allM); ?>
		<br />
		<?php $get = premium($allM); ?>
    </div>
            <div id='statistics'>
                <?php $get = level($allM); ?>
            </div>
            <div id='glory'>
                <?php $get = rank($allM); $get = points($sum); ?>
            </div>
        </div>
    </div>
    <br />
	<br />
	<br />
 
why when Im changing colours in jquery.alerts.css only the table with skills working(Highscores) but the first one where is general informations, statistics and fame hall is not changing anything :(
 
Awesome...but bugged, the "best level" will be the second invited...at least with me it's this way, level 113 = best level, level 1000 = worst level...
 
Back
Top