Senos 54 Posted February 26, 2013 Script Intermediário! - 6 Lista de Aulas: Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/ Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/ Bom galera, depois de aprendermos loops, arrays, menus dinâmicos e suas teorias, setd e getd, attachrid e detachrid, partiremos então para o Banco de Dados e aprenderemos então a maniuplar as Queries SQL, que é de suma importância para quem gosta de seus scripts mais seguros e com suas respectivas tabelas. Assunto da aula: - Queries SQL Como de costume, começarei mostrando a sintaxe do comando, e em cima dela, trabalharemos: query_sql "sua query de MySQL", <variável> {,<variável>, ...}; Sua Query_SQL: Você colocará a query que você quer executar, você aprenderá neste tutorial como escrever sua query da maneira que quer. Variável: Nem sempre é preciso específicar a variável, depende do comando que você utilizará. Você quando for atualizar (update) ou deletar (delete) algo de seu Banco de Dados ou sua respectiva tabela, você não precisará utilizar, agora caso for pegar alguma informação (select), você precisará sim da variável, lembrando que ser for texto ou palavars, precisará da var. string ($) caso contrário for números, não precisará. Bom, então começaremos a explicar os comandos, comando SELECT: SELECT <informacão> FROM <tabela> informacão: Como podemos perceber no Banco de Dados, uma tabela é formada por vários campos, neste campo, você indica o nome do campo que você deseja ler. Você pode específicar vários campos para serem lidos, exemplo: SELECT <informacão>,<informação>,<informação> FROM <tabela> Mas lembrando que teremos que específicar uma variável para cada campo no final da escrita da Querie, você pode substituir o nome dos campos por um (*), assim retornará todos os campos da tabela, sem precisar específicar um por um. tabela: Nome da tabela dentro do Banco de Dados que você gostaria de pegar a informação. Agora vejamos um exemplo utilizando o comando SQL em uma sintaxe Querie: query_sql ("SELECT `user_id` FROM `login`",@nome_do_usuario$); No caso essa variável @nome_do_usuario$ se tornará uma array, pois não será apenas 1 valor, e sim vários valores pois serão retornados todos os nomes de usuários de jogadores do seu servidor. No caso ficará assim: @nome_do_usuario$[0]: Usuario 1@nome_do_usuario$[1]: Usuario 2// Ficará sempre assim, só mudando a index da array, [2], [3], [4], etc... Aproveitarei com o comando SELECT, para explicar o comando WHERE, iremos pegar o nome de usuário de um jogador com o ID 1 no Banco de Dados, faremos assim no caso: query_sql ("SELECT `user_id` FROM `login` WHERE `account_id`=1",@nome_do_usuario$); Assim buscaremos uma conta específica e não todas as contas do jogo, simples, não?! Temos um conjunto de dois comandos chamados AND e OR, é utilizado junto com o WHERE, vejamos: query_sql ("SELECT `user_id` FROM `login` WHERE `level`=99 AND `sex`='M'",@nome_do_usuario$); Nesse caso só pegariamos o nome dos usuários dos jogadores que forem level 99 e (AND) do Sexo Masculino. Exemplo com o comando OR: query_sql ("SELECT `user_id` FROM `login` WHERE `level`=99 OR `sex`='F'",@nome_do_usuario$); Agora só pegariamos o nome dos usuários dos jogadores que forem level 99 ou (OR) do Sexo Feminino. Os dois comandos são super simples! Temos também o comando ASC (Ascendente) e DESC (Descendente), vejamos: query_sql ("SELECT `user_id` FROM `login` ASC"); // Retornaria a lista de nomes de usuários do servidor em ordem alfabética de A para o Z.query_sql ("SELECT `user_id` FROM `login` DESC"); // Retornaria a lista de nomes de usuários do servidor em ordem alfabética de Z para o A. Comando INSERT INTO: Este comando é para que você possa criar uma nova linha de dados dentro de uma tabela, criando uma nova informação na sua tabela desejada, vejamos: INSERT INTO <tabela> (<campos>) VALUES (<valores>); Vejamos um exemplo: query_sql ("INSERT INTO `login` (`account_id`, `user_id`, `user_pass`, `sex`, `email`) VALUES ('2000000', 'test', '12345', 'M','[email protected]')"); Nesta caso, estamos criando uma conta com o account_id 2000000, o nome de usuário test, a senha 12345, sexo masculino, e e-mail [email protected]. Partiremos então pro comando UPDATE, sintaxe: UPDATE `<tabela>` SET `<campo1>`='<valor1>',`<campo2>`='<valor2>'; Não é um comando complicado, com o exemplo passará de complexo para super simples, vejamos: query_sql ("UPDATE `login` SET `level`=99 WHERE `user_id`='Wolf'"); Esta queria irá mudar o Nível de GM da conta Wolf para 99, preste atenção, pois caso você não específicasse com o comando WHERE, todas as contas do servidor poderiam ser mudadas para 99, causando um transtorno enorme. Comando DELETE: Simplesmente faz oque diz, deleta uma informação da tabela, sintaxe: DELETE FROM `<tabela>` Se fizermos simplesmente DELETE FROM `login`, todas as informações da tabela login seriam deletadas, por isso iremos específicar, por exemplo: query_sql ("DELETE FROM `login` WHERE `userid`='Wolf'"); Neste caso a conta Wolf será deletada da tabela login do Banco de Dados. Porém não é recomendável deletar a conta desta maneira, pois as informações de chars, itens, e pets ainda ficariam ocupando espaços no Banco de Dados, no caso você teria que deletar tudo manualmente, porém serviu de exemplo. Comando DROP: Deleta a tabela inteira, sintaxe: DROP TABLE `<tabela>` Exemplo: query_sql ("DROP TABLE `login`"); Destrói a tabela login, ninguém mais consegue logar no servidor, e poderá arrecadar muitos problemas. Existe DROP DATABASE também, no caso você deletará uma Database, se você fizer DROP DATABASE `ragnarok`, acabará com o Banco de Dados ragnarok ò_ó. _____________________________________________________________ Fim do tutorial, posteriormente irei editar esse tópico e adicionar uns exemplos utilizando Querie, mas talvez, pois adicionei diversos exemplos no tutorial. Abraços!! 4 Rayzir, JulioCF, insidemybrain and 1 other reacted to this Quote Share this post Link to post Share on other sites
insidemybrain 1 Posted February 26, 2013 Parabéns Wolf, estuprando nos tutoriais! Quote Share this post Link to post Share on other sites
JulioCF 105 Posted February 26, 2013 Muito bom, parabéns. Faz um guia/tuto de comandos pelo PMA Quote Share this post Link to post Share on other sites