Ir para conteúdo

Featured Replies

Postado

 

Galera tem como me ajudar a montar um ranking na home do site, para mostrar os top 5 Kages que mais tem pontos.

 Obs: semelhante ao do print abaixo.

 

Tenho como referencia esse código php, onde mostra quantos "pontos " tem a guild..

 obs: na tabela 'players' tem outra tebela 'graduacao_points', marcando a quantidade depontos dos jogadores.

 

$ots = POT::getInstance();

$ots->connect(POT::DB_MYSQL, connection());

$SQL = $ots->getDBHandle();

 

echo'<div class="message"><div class="title">Top Guild Points</div> <div class="content">

                   

<table border="0" cellspacing="3" cellpadding="4" width="100%">

    <tr>';

$i = 0;

foreach($SQL->query('

        SELECT

            `g`.`id` AS `id`,

            `g`.`name` AS `name`,

            SUM(`p`.`level`) AS `level`,

            COUNT(`p`.`name`) AS `count`,

            AVG(`p`.`level`) AS `average`,

            MIN(`p`.`level`) AS `min`,

            MAX(`p`.`level`) AS `max`

        FROM `players` p

            LEFT JOIN `guild_ranks` gr ON `p`.`rank_id` = `gr`.`id`

            LEFT JOIN `guilds` g ON `gr`.`guild_id` = `g`.`id`

        WHERE `g`.`id` = `g`.`id`

        GROUP BY `name`

        ORDER BY `level` DESC

        LIMIT 3

    ') as $guild)

    {

        $Points = $guild['level'] + $guild['count'] + round($guild['average']) + $guild['min'] + $guild['max'];

        echo '

             <td style="padding-right:20px;padding-top:3px" align="center">

                Top Rating :

        <p style="color:#336600;display:inline;padding: 0 0 3px 0;font-weight: bold;">'.$Points.'</p>

                <a href="'.WEBSITE.'/index.php/guilds/view/' . $guild['id'] . '"><img src="'.WEBSITE.'/public/images/gp/'. $i = $i + 1 .'.png" width="60" height="60" border="0"/>

                <br /><b>' . $guild['name'] . '</b></a><br />

            </td>';

    }

echo'   </tr>

</table>';

    if(empty($i)) {

        echo "<center><font color='red'>There is no guilds yet.</font></center>";

    }

echo "</div>";

echo "</div><br/>";

?>

 

 

Print anexado:

 

Screenshot_257.png

  • 2 weeks later...
  • Respostas 30
  • Visualizações 5.1k
  • Created
  • Última resposta

Top Posters In This Topic

Posted Images

Postado
<?php
$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$SQL = $ots->getDBHandle();

echo '<div class="message"><div class="title">Top 5 Kages - Pontuação</div><div class="content">
    <table border="0" cellspacing="3" cellpadding="4" width="100%">
        <tr>';

// Consulta SQL para obter os top 5 Kages com base nos pontos
$query = '
    SELECT
        `p`.`name` AS `name`,
        `p`.`points` AS `points`
    FROM `players` p
    ORDER BY `points` DESC
    LIMIT 5
';

$result = $SQL->query($query);
$i = 1;

while ($row = $result->fetch()) {
    $kageName = $row['name'];
    $kagePoints = $row['points'];

    echo '
        <td style="padding-right: 20px; padding-top: 3px;" align="center">
            <p style="color: #336600; display: inline; padding: 0 0 3px 0; font-weight: bold;">' . $kagePoints . '</p>
            <br /><b>' . $i . '. ' . $kageName . '</b>
        </td>';

    $i++;
}

echo '
        </tr>
    </table>';

if ($i === 1) {
    echo "<center><font color='red'>Não há Kages registrados.</font></center>";
}

echo '</div></div><br/>';
?>

tente ai se ve erro me fala aqui

Editado por sverkoa
editei e atualizei (veja o histórico de edições)

Postado
  • Autor
  Em 09/06/2023 em 20:11, sverkoa disse:
<?php

$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$SQL = $ots->getDBHandle();

echo '<div class="message"><div class="title">Top Guild Points</div> <div class="content">

<table border="0" cellspacing="3" cellpadding="4" width="100%">
    <tr>';

$i = 0;

foreach ($SQL->query('
        SELECT
            `g`.`id` AS `id`,
            `g`.`name` AS `name`,
            SUM(`p`.`level`) AS `level`,
            COUNT(`p`.`name`) AS `count`,
            AVG(`p`.`level`) AS `average`,
            MIN(`p`.`level`) AS `min`,
            MAX(`p`.`level`) AS `max`
        FROM `players` p
            LEFT JOIN `guild_ranks` gr ON `p`.`rank_id` = `gr`.`id`
            LEFT JOIN `guilds` g ON `gr`.`guild_id` = `g`.`id`
        WHERE `g`.`id` = `g`.`id`
        GROUP BY `name`
        ORDER BY `level` DESC
        LIMIT 3
    ') as $guild) {
    $Points = $guild['level'] + $guild['count'] + round($guild['average']) + $guild['min'] + $guild['max'];

    echo '
        <td style="padding-right:20px;padding-top:3px" align="center">
            Top Rating :
            <p style="color:#336600;display:inline;padding: 0 0 3px 0;font-weight: bold;">' . $Points . '</p>
            <a href="' . WEBSITE . '/index.php/guilds/view/' . $guild['id'] . '">
                <img src="' . WEBSITE . '/public/images/gp/' . ($i = $i + 1) . '.png" width="60" height="60" border="0"/>
                <br /><b>' . $guild['name'] . '</b>
            </a><br />
        </td>';
}

echo '   </tr>
</table>';

if (empty($i)) {
    echo "<center><font color='red'>There are no guilds yet.</font></center>";
}

echo "</div>";
echo "</div><br/>";
?>

tente ai se ve erro me fala aqui

amigo, nao notei diferença.. ainda ta mostrando os "pontos" das guilds..

 era pra monstrar a  'graduacao_points' dos players

print de como esta:

https://imgur.com/a/RW4ZQAr

Postado
  • Autor

n deu certo

  Em 09/06/2023 em 20:11, sverkoa disse:
<?php

$ots = POT::getInstance();
$ots->connect(POT::DB_MYSQL, connection());
$SQL = $ots->getDBHandle();

echo '<div class="message"><div class="title">Top Guild Points</div> <div class="content">

<table border="0" cellspacing="3" cellpadding="4" width="100%">
    <tr>';

$i = 0;

foreach ($SQL->query('
        SELECT
            `g`.`id` AS `id`,
            `g`.`name` AS `name`,
            SUM(`p`.`level`) AS `level`,
            COUNT(`p`.`name`) AS `count`,
            AVG(`p`.`level`) AS `average`,
            MIN(`p`.`level`) AS `min`,
            MAX(`p`.`level`) AS `max`
        FROM `players` p
            LEFT JOIN `guild_ranks` gr ON `p`.`rank_id` = `gr`.`id`
            LEFT JOIN `guilds` g ON `gr`.`guild_id` = `g`.`id`
        WHERE `g`.`id` = `g`.`id`
        GROUP BY `name`
        ORDER BY `level` DESC
        LIMIT 3
    ') as $guild) {
    $Points = $guild['level'] + $guild['count'] + round($guild['average']) + $guild['min'] + $guild['max'];

    echo '
        <td style="padding-right:20px;padding-top:3px" align="center">
            Top Rating :
            <p style="color:#336600;display:inline;padding: 0 0 3px 0;font-weight: bold;">' . $Points . '</p>
            <a href="' . WEBSITE . '/index.php/guilds/view/' . $guild['id'] . '">
                <img src="' . WEBSITE . '/public/images/gp/' . ($i = $i + 1) . '.png" width="60" height="60" border="0"/>
                <br /><b>' . $guild['name'] . '</b>
            </a><br />
        </td>';
}

echo '   </tr>
</table>';

if (empty($i)) {
    echo "<center><font color='red'>There are no guilds yet.</font></center>";
}

echo "</div>";
echo "</div><br/>";
?>

tente ai se ve erro me fala aqui

n deu certo, continua mostrando as guilds 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo