Ir para conteúdo

Featured Replies

Postado

[Ja resolvi] Olá. Eu gostaria de fazer, na lateral do meu site, aparecer o top 5 do meu ranking de quests feitas.

 

Pra facilitar, eu ja tenho um modelo do top 5 level (que aparece certinho), mas não sei que partes alterar pra ele pegar os dados da coluna de quests e ordenar certinho.

 

Segue o top 5 level (cortei o que não tinha relação com o level pra ficar mais facil de encontrar o que eu preciso): 

 

 <?php
if(!defined('INITIALIZED'))
	exit;

$cacheSec = 30;
$cacheFile = 'cache/topplayers.tmp';
if (file_exists($cacheFile) && filemtime($cacheFile) > (time() - $cacheSec)) {
	$topData = file_get_contents($cacheFile);
} else {
	$topData = '';
	$i = 0;
	foreach($SQL->query("SELECT `name`, `level` FROM `players` WHERE `group_id` < 2 AND `account_id` != 3 ORDER BY `level` DESC LIMIT 5")->fetchAll() as $player) {
		$i++;
		$topData .= '<tr><td style="width: 80%"><strong>'.$i.'.</strong> <a href="?view=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td><span class="label label-primary">Lvl. '.$player['level'].'</span></td></tr>';
	}

	file_put_contents($cacheFile, $topData);
}

?>
    
<div class="panel panel-default">
					<div class="panel-heading">
						<span class="panel-title text-info fw700"><img src="https://www.tibiawiki.com.br/images/d/da/Badge_of_Glory.gif" alt="" style="width:32; height:32px;"/> Top 5 Level</h3></span>
					</div>
					<div class="panel-body">
						<table class="table table-condensed table-content table-striped">
							<tbody>
								<?php echo $topData; ?>
							</tbody>
						</table>
					</div>

 

O número de quests feitas pelo player se encontra na coluna "quests_feitas" na tabela "players" da database teste.

 

Podem fechar o tópico. Já consegui.

 

Para quem quiser a solução, ficou assim:

 

$cachequestSec = 30;
$cachequestFile = 'cache/topquestplayers.tmp';
if (file_exists($cachequestFile) && filemtime($cachequestFile) > (time() - $cachequestSec)) {
	$topquestData = file_get_contents($cachequestFile);
} else {
	$topquestData = '';
	$i = 0;
	foreach($SQL->query("SELECT `name`, `quests_feitas` FROM `players` WHERE `group_id` < 4 AND `account_id` != 3 ORDER BY `quests_feitas` DESC LIMIT 5")->fetchAll() as $player) {
		$i++;
		$topquestData .= '<tr><td style="width: 80%"><strong>'.$i.'.</strong> <a href="?view=characters&name='.urlencode($player['name']).'">'.$player['name'].'</a></td><td><span class="label label-primary">Quests: '.$player['quests_feitas'].'</span></td></tr>';
	}

	file_put_contents($cachequestFile, $topquestData);
}

<div class="panel panel-default">
					<div class="panel-heading">
						<span class="panel-title text-info fw700"><img src="https://www.tibiawiki.com.br/images/d/da/Badge_of_Glory.gif" alt="" style="width:32; height:32px;"/> Top 5 Quests</h3></span>
					</div>
					<div class="panel-body">
						<table class="table table-condensed table-content table-striped">
							<tbody>
								<?php echo $topquestData; ?>
							</tbody>
						</table>
					</div>
				</div>

 

Basicamente adicionei essas 2 partes e criei um cache file "topquestplayers.tmp"

Editado por MatCollier (veja o histórico de edições)

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 520.2k

Informação Importante

Confirmação de Termo