[Tutorial] O Uso do MySQL (Plugin: BlueG)
#1

Para desenvolver projetos de qualidade й preciso estar se adequando e aprimorando nossos conhecimentos.
O uso do MySQL se torna enssкncial para atingir uma qualidade e uma seguranзa adequada em nossos projetos, neste breve tutorial abordarei algumas das principais funзхes do Plugin MySQL criado por BlueG.

1. Ferramentas

O primeiro passo й sempre o mais importante, nele iremos ter conhecimento das ferramentas que iremos utilizar.
WAMPServer - Precisaremos de um servidor Apache rodando em nossa mбquina para trabalhar com o phpMyAdmin, recomendo o WampServer. Fique б vontade para usar outro de sua preferкncia (Xampp, VertrigoServ, EasyPHP).

phpMyAdmin - Por que utilizar o phpMyAdmin? A resposta й bem simples: O phpMyAdmin vai facilitar o trabalho de integraзгo em um futuro UCP e tambйm a praticidade de criaзгo e administraзгo de banco de dados.

Plugin MySQL (BlueG) - Utilizaremos este plugin por ser o mais atual presente na comunidade e ao meu ver o melhor.

2. Estrutura

Tendo jб todas as ferramentas a disposiзгo precisaremos montar a estrutura do nosso sistema, й importante saber que ao salvar uma informaзгo precisaremos de uma identificaзгo para posteriormente poder identificar e carregar esta informaзгo salva. Tendo isto em mente precisaremos de um ID (Identificaзгo), entгo toda tabela que criarmos, precisaremos de uma coluna ID, por exemplo:

PHP код:
id (Lembre-se sempre de definir como AUTO_INCREMENT PRIMARY KEY)
name
pass 
AUTO_INCREMENT - Esta funзгo incrementarб o valor da coluna ID, por exemplo: sempre que um novo registro for adicionado a tabela a coluna ID serб incrementada com um valor.

PRIMARY KEY - Esta funзгo indicarб que a coluna terб um valor exclusivo, ou seja, o valor nгo se repetirб.

Tendo essas descriзхes em mente й de extrema importвncia a combinaзгo destas funзхes na coluna ID, pois com ela teremos uma identificaзгo de cada registro, por exemplo:

Ao realizarmos um registro, digamos que pela primeira vez, a coluna id receberб o valor “id = 1”, o registro seguinte receberб o valor “id = 2” , pois os valores contidos na coluna id nгo devem ser repetidos entгo o AUTO_INCREMENT incrementa um valor e a funзгo PRIMARY_KEY informa pro AUTO_INCREMENT que os valores nгo podem ser repetidos.

3. Inserзгo de Dados

Nesta parte entenderemos melhor o funcionamento do processo de inserзгo de dados em uma tabela, utilizarei como exemplo a estrutura mostrada acima.
Partiremos da seguinte situaзгo: Precisamos cadastrar o nome de usuбrio e a senha do usuбrio.

PHP код:
new sG[128]; //Esta variбvel й meramente ilustrativa, nгo se preocupem com ela.
format(sG,sizeof(sG), "INSERT INTO users (name,pass) VALUES ('%s','%s')",name,pass);
mysql_query(1,sG); 
Como podemos ver acima, com apenas duas linhas de cуdigo criamos um registro em nosso banco de dados, vocк pode ter notado que o 'id' nгo foi especificado, o motivo й que por se tratar de uma coluna AUTO_INCREMENT nгo й necessбrio que especifiquemos um valor ao efetuar uma inserзгo.
Vamos agora destrinchar tudo o que foi usado e entendermos o porque de seu uso.

Format - O uso do Format й de grande importвncia para inserir os dados necessбrios na funзгo de inserзгo.

INSERT INTO (INSIRA DENTRO DE) – Nesta funзгo vamos declarar onde vamos inserir os dados, neste caso vamos inserir na tabela 'users' em seguida definimos as colunas as quais vamos inserir os dados '(name,pass)', em seguida especificamos os valores VALUES ('%s','%s'), por se tratar de colunas de texto utilizamos aspas simples e como estamos utilizando o Format utilizamos '%s'.

mysql_query – Esta funзгo fica responsбvel por executar o cadastro, sem ela a “mбgica” nгo ocorreria, nela especificamos o nъmero da conexгo (1), em seguida inserimos o valor formatado na funзгo format (sG).

PHP код:
mysql_query(1,"INSERT INTO users (name,pass) VALUES ('Fulano','ZikadaBalada')"); 
Deste outro modo visto acima, poderнamos inserir dados na tabela 'users' porйm nгo poderнamos formatar os valores, este modo nгo poderia ser utilizado em um sistema de registro por exemplo.

4. Seleзгo de Dados

Nesta etapa veremos como selecionar dados de um tabela e registrar os dados em variбveis.
Primeiramente vamos criar uma estrutura bбsica em nosso cуdigo para que assim possamos gravar os dados extraнdos de nosso banco de dados:
PHP код:
enum users
{
 
id,
 
name[MAX_PLAYER_NAME],
 
pass[128],
}
new 
User[MAX_PLAYERS][users]; 
Agora vamos executar a funзгo de carregamento de dados de um usuбrio especнfico:
PHP код:
new resultadosn[MAX_PLAYER_NAME];
format(sG,sizeof(sG),"SELECT * FROM users WHERE id = %d",id);
mysq_query(1,sG);
resultados cache_num_rows();
if(
resultados 0)
{
 
User[playerid][id] = cache_get_field_content_int(0"id");
 
cache_get_field_content(0"name"n); strcat(User[playerid][Name],n,128);

cache_get_field_content_int(linha,nome do campo) - Esta funзгo й especifica para a coleta de valores inteiros.
linha - Por se tratar de uma seleзгo de dados especifica onde visamos o retorno de somente 1 resultado
mantemos o valor de linha em '0', pois vamos coletar o valor da primeira linha encontrada.
nome do campo - O nome do campo refere-se ao nome da coluna, entгo neste caso estamos resgatando o valor da coluna 'id'.
PHP код:
enum houses
{
 
id,
}
new 
House[MAX_PLAYERS][houses]; 
PHP код:
new resultados;
mysql_query(1,"SELECT * FROM houses");
mysq_query(1,sG);
resultados cache_num_rows();
for(new 
rresultadosr++)
{
 
House[r][id] = cache_get_field_content_int(r"id"); 

Neste segundo caso podemos notar a presenзa de um "for()" que й executado em torno do valor encontrado na variбvel "resultados".
cache_num_rows() - Esta funзгo й responsбvel por retornar o nъmero de linhas encontradas na busca realizada pelo "mysql_query()".

5. Atualizaзгo de Dados

Nesta etapa veremos a grande importвncia da coluna "id", ao atualizarmos um valor presente na tabela precisaremos especificar o ID onde iremos direcionar as mudanзas, por exemplo:

Precisamos mudar o nome de um usuбrio especнfico:
PHP код:
format(sG,sizeof(sG),"UPDATE users SET name = '%s' WHERE id = %d",name,id);
mysql_query(1,sG); 
Em outros casos nгo necessitaremos do uso do ID:

PHP код:
format(sG,sizeof(sG),"UPDATE users SET name = '%s' WHERE name = '%s'",new_name,old_name);
mysql_query(1,sG); 
O segundo mйtodo pode parecer um pouco confuso mas й simples, iremos gravar na variбvel 'old_name' o atual nome, a funзгo mysql_query vai efetuar uma busca na tabela em busca de um registro que possua name = old_name.
A diferenзa entre ambos й somente a variбvel de identificaзгo, em um buscamos pelo ID e em outro buscamos pelo Nome.
A condiзгo WHERE tem papel fundamental nos dois mйtodos usados acima pois sem ela nгo seria possнvel criar uma condiзгo para execuзгo das atualizaзхes.

6. Consideraзхes Finais

Pois bem, como podemos notar, й muito simples utilizar o MySQL em nossos futuros projetos, nestes exemplos tentei destacar a possibilidade da criaзгo de um cуdigo limpo e simples.

Por exemplo:
PHP код:
MySQL_function_query(dbHandle"SELECT * FROM players WHERE name = 'Andre' LIMIT 0,1"true"OnPlayerDataLoad""s""Andre");
forward OnPlayerDataLoad(name[]);
public 
OnPlayerDataLoad(name[])
{
    new 
rowsfields;
    
cache_get_data(rowsfields);
    if(!
rows)
    {
        print(!
"Andre is not a registered account on this server!");
    }
    else
    {
        
printf("Andre is registered (1 row with %d fields)"fields);
    }

No exemplo mostrando acima й necessбrio criar uma nova callback para fazer o retorno dos dados, farei a mesma funзгo de uma forma mais simples abaixo:

PHP код:
new rowsfields;
format(sG,sizeof(sG),"SELECT * FROM players WHERE name = 'Andre' LIMIT 0,1");
mysql_query(1,sG);
cache_get_data(rowsfields);
if(!
rows

    print(!
"Andre is not a registered account on this server!"); 

else 

    
printf("Andre is registered (1 row with %d fields)"fields); 

Bem, entгo й isso, peзo perdгo por erros ortogrбficos e espero que de alguma forma este texto possa vir a ser ъtil para vocк, deixe o seu feedback com sugestхes para que eu possa estar vindo a melhor nos prуximos tutoriais.

7. Crйditos
Elaboraзгo do Tutorial: MtC
Plugin MySQL: BlueG
Reply
#2

Bom tutorial, bem explicado, acho que faltou a explicaзгo de algumas coisas ai mas sгo coisas simples, como conectar o servidor ao banco de dados etc... Mas ficou bem explicado e organizado.

Parabйns.
Reply
#3

Wow, hб tempos nгo vejo algo do tipo aqui, de forma tгo organizada.

Apenas uma dica: Onde vai exibir as funзхes para uma posterior explicaзгo, use a tag LIST

Bom trabalho.
Reply
#4

Muuito bom!
Reply
#5

Quote:
Originally Posted by FallweN
Посмотреть сообщение
Bom tutorial, bem explicado, acho que faltou a explicaзгo de algumas coisas ai mas sгo coisas simples, como conectar o servidor ao banco de dados etc... Mas ficou bem explicado e organizado.

Parabйns.
Muito obrigado pela opiniгo, evitei estas explicaзхes por jб existirem alguns tutoriais focados nestas partes !

Quote:
Originally Posted by Dolby
Посмотреть сообщение
Wow, hб tempos nгo vejo algo do tipo aqui, de forma tгo organizada.

Apenas uma dica: Onde vai exibir as funзхes para uma posterior explicaзгo, use a tag LIST

Bom trabalho.
Muito obrigado, fico feliz pelo feedback e irei utilizar a dica! Obrigado!

Quote:
Originally Posted by HaRdiiZin
Посмотреть сообщение
Muuito bom!
Muito obrigado por comentar HaRdiiZin.
Reply
#6

Wow parabйns pelo tutorial, bem explicado e o topico bem organizado, espero ver mais trabalhos seu aki na board, abraзos.
Reply
#7

Excelente organizaзгo e explicaзгo! Agora o que nгo falta aqui sгo tutoriais mysql

Seria bom ter tutoriais de como usar sqlite.
Reply
#8

Quote:
Originally Posted by MStyleBR
Посмотреть сообщение
Wow parabйns pelo tutorial, bem explicado e o topico bem organizado, espero ver mais trabalhos seu aki na board, abraзos.
Muito obrigado, MStyleBR. Estou pensando em desenvolver alguns sistemas e publicar, brevemente postarei algo para avaliaзгo do pessoal !

Quote:
Originally Posted by MacMillan_
Посмотреть сообщение
Excelente organizaзгo e explicaзгo! Agora o que nгo falta aqui sгo tutoriais mysql

Seria bom ter tutoriais de como usar sqlite.
Й acabei notando que haviam vбrios e tentei abordar algo diferente, SQLite й bacana й uma boa opзгo pro pessoal estar usando tambйm! Me manterei no MySql ainda quero desenvolver alguns sistemas e UCP's para estar publicando talvez me foque em um projeto em que eu me disponha a estar atualizando constantemente. Pretendo abrir um servidor no futuro mas atй lб estou sem equipe para isso, entгo pretendo estar compartilhando conteъdo, tudo aquilo que eu puder fazer e for ъtil para a comunidade.
Reply
#9

Belo tutorial!!
Reply
#10

Muito bom, parabйns!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)