Ir para conteúdo

[PHP] Criando Rank


SkelletonX

Posts Recomendados

Ola Jovems :D , Hoje vim mostrar/ensinar como criar um rank simples no PHP usando Mysql & PHP. Vou tentar explicar cade detalhe, se tiver pergunta ou duvida pode postar não fique com vergonha de perguntar.

 

Primeira mente vou começar pela conexão como banco de dados.

 

Existem funções no PHP específicas para conexão ao servidor e ao banco. 
 
mysql_connect(); função para conexão ao servidor 
mysql_select_db(); função para selecionar o banco de dados

Vamos criar DBConfig.php

<?php 
$conecta = mysql_connect("HOST", "LOGIN", "SENHA") or print (mysql_error()); 
mysql_select_db("BANCO", $conecta) or print(mysql_error()); // BANCO = Banco de dados
print "Conexão OK!"; 
mysql_close($conecta); 
?>

para quem não sabe $joaozinho ou $pedrinho são variavel, pode ver que a nossa variavel $conecta é a conexão como Mysql.

 

Observação!
 
Host=mysqlxx.seudominio.net, caso o DNS de seu site não estiver hospedado na Locaweb, pode utilizar o IP do servidor até que você aponte o dns para nossa rede.
 
Agora vamos para parte do Rank vamos criar rank.php
 
Trabalhando com os Dados Presentes no Banco
mysql_query(); executa um comando SQL no banco de dados. 
mysql_fetch_array(); retorna linha de consulta até que a condição seja falsa. 
mysql_free_result(); libera memória utilizada. 
mysql_close(); fecha conexão com o servidor.
vamos dar um include no DBConfig.php
 
include ("DBConfig.php"); //com include vai poder chamar a variavel da conexão.

Agora vamos criar um variavel para chamar Tabela e Coluna.

$result=mysql_query($conecta, "SELECT * FROM TABELA ORDER BY COLUNA DESC LIMIT 10;");

Podemos ver que criamos uma Variavel  com uma query que vai selecionar a tabela & Coluna

 

Skelleton oque essa Query Faz ? 

 

R: Então vamos dar um exemplo na parte de Servidor de " Minecraft " vocè tem uma tabela e coluna onde armazena o Dinheiro(coins) 

na verdade é a coluna que da o valor não a Tabela! ex

$result=mysql_query($conecta, "SELECT * FROM Dinheiro ORDER BY money DESC LIMIT 10;");

Ali vai selecionar os mais 10 Ricos do servidor.

 

Skelleton  mas eu queria fazer um top 20 não top 10 dos mais ricos, tem como fazer ? 

 

R: Claro meu jovem. é so vocè mudar na query na parte de DESC LIMIT 10 vocè muda para o valor 20.

 

Agora Vamos verificar se a Query esta consultando corretamente se existe mesmo a tabela e coluna .

if(!$result){
                echo "Query Fail";
                }else{

Skelleton oque é if ?

 

R: Jovem , if é uma codição, usada para verificar algo.

 

Agora vamos fazer design do rank.

 

Usaremos uma função de loop ( while(); ) para demonstrar uma consulta SQL em ação.

$rank = 1;
               echo "<h1>RANKING TOP 10</h1>";
               echo "<table width=\"591\" border=\"0\">";
               echo "<tr>";
               echo "<p><td width=\"50\">posição</td></p>";
               echo "<p><td width=\"100\">Nome</td></p>";
               echo "<p><td width=\"50\">Coins</td></p>";
               echo "</tr>";
               while($array = mysql_fetch_object($result)) {
               echo "<tr>";
               echo sprintf("<td>%d</td>", $rank++);
               echo sprintf("<td>%s</td>", $array->name);
               echo sprintf("<td>%d</td>", $array->money);
               echo "</tr>";
               
			   }
			   echo "</table>";
		       }

Skelleton qual é função da variavel $Rank ?

 

R: Jovem, Rank seria começo se vocè quer começar o rank pelo o primeiro 1 2 3 ... se vocè colocar $rank = 2;  vai ficar 2,3,4 ...

 

Podemos ver Galera na parte de 

echo sprintf("<td>%s</td>", $array->name);
echo sprintf("<td>%d</td>", $array->money);

name e money são colunas. name = Nick do jogador 

Money = coins 

 

Code completo 

<?php
/*
*
*  @Author Skelleton
*
*/
			   include ("DBConfig.php");
				
                $result=mysql_query($conecta, "SELECT * FROM Dinheiro ORDER BY money DESC LIMIT 10;");

                if(!$result){
                echo "o select não tá funcionando";
                }else{
	
				
                
			   
               $rank = 1;
               echo "<h1>RANKING TOP 10</h1>";
               echo "<table width=\"591\" border=\"0\">";
               echo "<tr>";
               echo "<p><td width=\"50\">posição</td></p>";
               echo "<p><td width=\"100\">Nome</td></p>";
               echo "<p><td width=\"50\">Coins</td></p>";
               echo "</tr>";
               while($array = mysql_fetch_object($result)) {
               echo "<tr>";
               echo sprintf("<td>%d</td>", $rank++);
               echo sprintf("<td>%s</td>", $array->name);
               echo sprintf("<td>%d</td>", $array->money);
               echo "</tr>";
               
			   }
			   echo "</table>";
		       }

?>

 

Link para o comentário
Compartilhar em outros sites

Só não entendi na parte do %d e %s ... O que ambos fazem/retornam na verdade?

 

 %d = O argumento é tratado como um inteiro, e mostrado como um número decimal com sinal.

 

%s =  O argumento é tratado e mostrado como uma string.

 

vamos dizer + - que é para numero e letras. que vai ser exibir.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...