[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por itarodrigo em Ter 17 Mar 2015, 17:08

Título: Criar jogos online PARTE 3 - Pegando dados pelo PHP
Versão do GM: X
Dificuldade: Avançado
Link para download da Engine: X
Requer Extensões: Não
Requer DLLs: Não
Tags: wamp, servidor, online, html5, php, mysql

Oi pessoal,

Esta é a terceira parte do tutorial voltado para aqueles usuários que têm vontade de criar um jogo online com os dados salvos em bancos de dados.

É pré-requisito para este tutorial, ver:
Tutorial 1 http://gmbr.forumeiros.com/t32003-tutorial-criar-jogos-online-parte-1
Tutorial 2 http://gmbr.forumeiros.com/t32004-tutorial-criar-jogos-online-parte-2

Ensinarei nesse tutorial como pegar os dados salvos em uma tabela e como salvar novos dados, através do PHP.

Porque é vou mostrar em PHP e não direto no GM?
Simples: o GM ainda não tem uma opção de conexão direta com banco de dados mysql, por isso iremos usar eventos assíncronos para acessar os arquivos PHP e nos mostrar as informações.

Um detalhe importante é que no cabeçalho desse tutorial, eu marquei o nível de dificuldade Avançado visto que para entender bem esse tutorial, você precisará ter alguma noção de PHP e comandos SQL (não pretendo nesse tutorial ensinar PHP ou SQL, poderei fazê-lo em outro momento).

Vamos ao que interessa:

1 - Abra 'meu computador', navegue até 'c:\wamp\www' (pois é o diretório de instalação padrão do WAMP).

2 - Nele, crie uma pasta com um nome qualquer (no exemplo irei usar 'gmbr'):


Obs: Cada pasta representa um site, você pode criar quantos desejar.

3 - Dentro do diretório criado, crie um arquivo de texto (pode usar o bloco de notas mesmo), e salve com o nome 'index.php':


4 - Abra o arquivo e copie o código abaixo nele e salve:
Código:
<?php
//a linha abaixo permite que qualquer pessoa possa acessar a página para obter dados
header('Access-Control-Allow-Origin: *');

//conecta ao banco de dados (host, usuario, senha, banco)
//claro que, quando o jogo tiver online, você terá que alterar os dados de login
$mysqli = new mysqli("localhost", "root", "", "nome_do_jogo");

//se der erro, mostra na tela (não gosto de botar isso online, só no localhost mesmo)
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//as variáveis em PHP iniciam por $
//criei uma variável chamada $query (poderia ser qualquer nome)
//ela irá armazenar meu comando SQL
//
//select = selecionar
//* = todos
//from = da tabela
//ranking = nome da tabela
//order by = ordenar por
//potuacao = campo que deve ser ordenado
//desc = de trás pra frente (do menor para o maior)
//select * from ranking = selecionar todos registros da tabela ranking ordenado pelo campo pontuacao do menor pro maior
$query = $mysqli->query('select * from ranking order by pontuacao desc');

//aqui criarei um loop que irá 'andar' cada registro da minha tabela
//
//crio aqui um loop (while) que irá pegar cada registro e escreve-lo na tela
//
//while = loop
//$ranking = variavel que irá armazenar meus dados
//$query = variável criada anteriormente com meu comando SQL
//fetch_object = "cria um objeto com o registro atual"
//
//while ($ranking = $query->fetch_object()){ = enquanto (ranking recebe informacoes do comando SQL em forma de objeto)
while ($ranking = $query->fetch_object()){
//
//echo = escreve na tela
//$ranking->usuario = no objeto ranking eu pego o campo usuário (criado em nosso banco de dados)
//. = serve pra contatenar (unir) strings
//' - ' = insiro um espaço um travessão e outro espaço
//. = concateno novamente
//$ranking->usuario = no objeto ranking eu pego o campo pontuação (criado em nosso banco de dados)
//. = concateno novamente
//, = uso uma vírgula para dividir os dados em um por linha
//
//echo $ranking->usuario.' - '.$ranking->pontuacao.',' = escreva na tela = usuario - pontuacao,
echo $ranking->usuario.' - '.$ranking->pontuacao.',';
}

?>

5 - Salve o arquivo, abra seu navegador, digite localhost

6 - Na parte de baixo em 'Your Projects', clique no nome da pasta que você criou:


Obs: Se ao clicar no link o Wamp não abrir seu site corretamente, você pode digitar o endereço: localhost/nome_da_pasta (nesse caso 'localhost/gmbr'):


Para corrigir essa falha, abra o arquivo 'c:\wamp\www\index.php' procure a linha:
Código:
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://' : '').$file.'">'.$file.'</a></li>';
altere para
Código:
$projectContents .= '<li><a href="'.($suppress_localhost ? 'http://localhost/' : '').$file.'">'.$file.'</a></li>';

7 - Se deu tudo ok, você verá esse resultado:


8 - Agora vamos incluir um novo dado no Banco de Dados.

9 - Na pasta do seu site/projeto, dentro de c:\wamp\www, crie um novo arquivo chamado inserir.php, da mesma forma que criou o anterior:


10 - Cole o código abaixo no arquivo e depois salve:
Código:
<?php
//conecta ao banco de dados (host, usuario, senha, banco)
//claro que, quando o jogo tiver online, você terá que alterar os dados de login
$mysqli = new mysqli("localhost", "root", "", "nome_do_jogo");

//se der erro, mostra na tela (não gosto de botar isso online, só no localhost mesmo)
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

//crio duas variáveis para receber os novos dados (usuario e pontuacao)
$usuario = $_POST['usuario'];
$pontuacao = $_POST['pontuacao'];

//insert into = inserir na tabela...
//ranking = nome da tabela
//(usuario, pontuacao) = devo listar os campos que irão receber novos dados (não devo listar o campo ID)
//values = valores que serão inclusos
//("'.$usuario.'", "'.$pontuacao.'") = perceba que os dados devem estar entre aspas duplas "", aspas simples '' e pontos de contatenacao ..
//insert into ranking (usuario, pontuacao) values ("'.$usuario.'", "'.$pontuacao.'") = inserir na tabela ranking nos campos (usuario e pontuacao) os valores recebidos nas variáveis acima ($usuario e $pontuacao)
$mysqli->query('insert into ranking (usuario, pontuacao) values ("'.$usuario.'", "'.$pontuacao.'")');

echo 'Salvo!';

?>

Fiz umas alterações no tutorial e irei mostrar como inserir os dados, apenas no GM mesmo, pois fica mais prático pra mim.

Tutorial 4 http://gmbr.forumeiros.com/t32008-tutorial-criar-jogos-online-parte-4

EDIÇÃO 1: Alterado o arquivo index.php para que o mesmo use vírgula para separar os campos ao invés de
Em 17 de março de 2015
EDIÇÃO 2: Alterado o arquivo inserir.php para que o mesmo exiba uma imagem confirmando que os dados foram salvos Em 17 de março de 2015


Última edição por itarodrigo em Sex 12 Jun 2015, 21:15, editado 10 vez(es)

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por Lupptyr em Ter 17 Mar 2015, 17:23

Este tutorial é para jogo http: ?
Ou e se não for, tem como usar o WAMP pra criar online normal pela engine mesmo?

Lupptyr

Número de Mensagens : 28
Idade : 21
Data de inscrição : 06/03/2015
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por itarodrigo em Ter 17 Mar 2015, 17:32

O tutorial serve tanto para jogos HTML5 quanto para jogos para windows.

Ainda não testei em jogos para android.

O WAMP cria um servidor local offline na sua máquina, onde você pode criar o seu banco de dados e testar seu jogo de uma forma mais rápida antes de colocá-lo online.

Depois que o jogo tiver pronto, basta salvar os arquivos offline e hospedá-los em um site qualquer.

Abraço.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por Lupptyr em Ter 17 Mar 2015, 17:40

Beleza valeu, ótimo tutorial cara, seguinte, tu vai continuar a colocar tutoriais ainda? tipo hoje?

Lupptyr

Número de Mensagens : 28
Idade : 21
Data de inscrição : 06/03/2015
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por itarodrigo em Ter 17 Mar 2015, 17:50

to pensando em fazer o quarto tutorial ainda hoje sim, mostrando como ver os dados no GM.

abraço.

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por Lupptyr em Ter 17 Mar 2015, 17:53

To querendo me ''profissionalizar'' no setor de Networking. xD

''Profissionalizar'' não real, digo ficar ''expert'' no assunto xD.

Lupptyr

Número de Mensagens : 28
Idade : 21
Data de inscrição : 06/03/2015
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por itarodrigo em Ter 17 Mar 2015, 18:02

Legal, acho networking um termo muito abrangente, qual área específica você quer estudar?

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por ekuhnen em Qui 11 Jun 2015, 15:05

também funciona com andoid, só pra constar

ekuhnen

Número de Mensagens : 47
Idade : 33
Data de inscrição : 05/10/2012
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por itarodrigo em Qui 11 Jun 2015, 19:16

interessante que testei em windows e android e funciona legal sim, porém, em html5 não está funcionando.

alguém conseguiu fazer rodar ou sabe se precisa configurar algo a mais fora o que passei no tutorial?

abraços.

RESOLVIDO E ATUALIZADO NO TUTORIAL

itarodrigo

Número de Mensagens : 599
Idade : 33
Data de inscrição : 28/08/2010
Reputação : 52
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [TUTORIAL] Jogos Online com PHP e MySql - PARTE 3

Mensagem por Conteúdo patrocinado Hoje à(s) 09:41


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum