Sign in to follow this  
brunob22

[TUTORIAL] MySQLITE

Recommended Posts

 

 

 

Olá talvez aqui voce entenda como brinca um pouco com ele e largar as db do proprio mta

Bom primeiro vamos entender o SQL

vamos usar aqui SQLITE e uma versao lite do SQL onde e possivel guarda as info em arquivo .db

voce pode usar oque vou ensinar aqui em SQL tb

primeiro vamos fazer a connecta ao banco

 

db = dbConnect( "sqlite", "db/banco.db" )

não precisa ter o arquivo o, proprio mta cria ele para voce 😮

Agora vamos criar as TABELAS e suas COLUNAS

dbExec(db, "CREATE TABLE IF NOT EXISTS SERVIDOR (CONTAPLAYER TEXT,SERIAL_PLAYER TXT,SENHA_PLAYER TEXT,DINHEIRO_PLAYER INT)")

O codigo acima vai criar uma tabela chamda " SERVIDOR "  com 4 colunas 

vamos entender os tipos de coluna que usei

TEXT > E uma coluna do tipo TEXTO

INT >  E uma coluna do tipo NUMERO INTEIROS ex ( 1 | 33333 | 77777)

como eu sei que o dinheiro do player e um numero inteiro botei INT

voce não vai precisa coloca isso caso não queira. e melhor para o futuro e tals

vou mostra aqui para voce algums argumento de consulta,alteração,e deletar 

dbQuery(db, "SELECT * FROM SERVIDOR")

SELECT > SELECIONA

* > TUDO

FROM > DE

SERVIDOR > NOME DA TABELA

nessa ai vimos que eu mandei um comando falando para selecionar tudo da tabela SERVIDOR

function SQLiteCall_SERVER ()
    local SV = dbQuery(db, "SELECT * FROM SERVER")
       if SV then
           return SV
     end
    end

aqui um ex de função que vai retorna a tabela selecionada

Porem tem que ler ela de uma forma que voce pode ver os dados colocados nela

function QualMeuDinheiro(source)
    local Serial = getPlayerSerial( source ) -- PEGANDO O SERIAL DO PLAYER QUE CHAMO A FUNÇÃO
    local banco = SQLiteCall_Fazendas() -- CHAMANDO A FUNÇÃO QUE SELECIONA O BANCO DE DADOS 
     if banco then -- VERIFICA SE A TABELA QUE ELE PEGO EXISTE
        local p = dbPoll(banco,-1) -- BASICAMENTE ELA SERVER PARA RECEBER O RESULTADO DA TABELA
        for index , dados in ipairs(p) do -- AQUI ABRE A TABELA E TORNA O DADOS POSSIVEL DE LER
            if Serial == dados["SERIAL_PLAYER"] then -- AQUI TO COMPARANDO O SERIAL COM O DADO LA NO BANCO DE DADOS 

                outputChatBox( "SEU DINHERO E :"..dados["DINHEIRO_PLAYER"],source,255,255,255,true) -- E AQUI FOI SELECIONADO O DINHEIRO DO PLAYER DA VERIFICAÇÃO ACIMA
            
   end          
  end
 end
end
addCommandHandler( "meudinheiro",QualMeuDinheiro )

a função acima informa o dinheiro do player baseado oque tem no banco de dados essa parte 

dados["DINHEIRO_PLAYER"]

"DINHEIRO_PLAYER" ea nome da coluna la na tabela

 

Ok aqui voce aprendeu a ler os dados e exibir. Agora voce me pergunta e fazer update?

dbExec(db, "UPDATE SERVIDOR SET DINHEIRO_PLAYER=? WHERE SERIAL_PLAYER=?",dinheiro,serial)

UPDATE > FAZER ALTERAÇÃO

SET > QUAL COLUNA 

DINHEIRO_PLAYER > O NOME DA COLUNA

WHERE > E QUAL PARTE | isso que dizer que ele vai pesguisa no banco 

SERIAL_PLAYER > o nome da tabela que ele vai procura

function MoneyMoney(source)
    local DINHEIRO_NOVO = 10000
    local serial = getPlayerSerial( source )

    dbExec(db, "UPDATE SERVIDOR SET DINHEIRO_PLAYER=? WHERE SERIAL_PLAYER=?",DINHEIRO_NOVO,serial) -- AQUI FOI FEITO ALTERAÇAO 
end
addCommandHandler( "querodinheiro",MoneyMoney )

essa função faiz o update no banco de dados mais lembre-se se o player tem 50000 la no banco de dados e voce fizer update para 10000 o valor vai ser 10000 então para almenta ou diminuir faça a consulta no banco de dados dps some com o valor novo e assim faiz o update

 

dbExec(db, "INSERT INTO SERVIDOR (CONTAPLAYER,SERIAL_PLAYER,SENHA_PLAYER,DINHEIRO_PLAYER) VALUES(?,?,?,?)",Conta,Serial,Senha,Dinheiro)

INSERT > Inserir

Into > Em

Servidor > Nome da tabela

function Megrava ()
local Conta = "OlaLogin"
local Serial = "65D56AS45D5A45D56A4DADAD5A4D"
local Senha = "1234b"
local Dinheiro = 50000
dbExec(db, "INSERT INTO SERVIDOR (CONTAPLAYER,SERIAL_PLAYER,SENHA_PLAYER,DINHEIRO_PLAYER) VALUES(?,?,?,?)",Conta,Serial,Senha,Dinheiro)
                                                                                                  --/\  ? são o tanto de argumento que vai por --
end
addCommandHandler( "gravar",Megrava )

Nessa parte eu to gravando os dados do player no banco de dados

dbExec(db, "DELETE FROM SERVIDOR WHERE SERIAL_PLAYER=?", Serial) -- MESMA IDEIA DO UPDATE MAIS AQUI VOCE DELETA OS DADOS DE UM SERIAL X
dbExec(db, "DELETE FROM SERVIDOR") -- AQUI VOCE DELETA TUDO QUE TEM NA TABELA SERVIDOR

esse ai e para DELETAR elemento na tabela do banco de dados

 

Eu acho que isso eu basico e todo que voce precisa saber sobre MYSQL qualquer outra duvida pode pergunta

@DNL291 

DNL se tiver erros de portugues que eu sei que tem kkkk pode corrigir e se tiver confuso pode da uma melhorada se possivel? acho que esse e um tutorial importante ^^

Edited by brunob22
  • Like 3

Share this post


Link to post
20 hours ago, brunob22 said:

DNL se tiver erros de portugues que eu sei que tem kkkk pode corrigir e se tiver confuso pode da uma melhorada se possivel? acho que esse e um tutorial importante ^^

Que isso, o que importa é não interferir na interpretação de quem lê, erro de português não é algo anormal, na verdade a grande maioria sempre comete erros.

  • Like 1

Share this post


Link to post

Enfim ja havia um post muito semelhante a esse que o colega  @Lord Henry fez de qualquer forma ótimo tutorial...

Edited by OverKILL

Share this post


Link to post
7 hours ago, OverKILL said:

Enfim ja havia um post muito semelhante a esse que o colega  @Lord Henry fez de qualquer forma ótimo tutorial...

desculpe . mais ta com problema comigo? foi ver antes de cagar pelos dedos?? 

2:28 DA MANHA

goGLhpC.png

 

4xUpTeW.png

MEIO DIA..

por favor.. olhar antes ¬¬

Share this post


Link to post

Olá.

Eu criei o tutorial depois do seu sim. Foi mais para demonstrar como fazer um tutorial bem feito e detalhado. Então postei o tutorial para servir de comparação com o seu.

PORÉM

A informação contida no meu tutorial já existia faz bastante tempo, eu apenas repostei e mudei algumas coisas pequenas. Fonte original: 

 

Edited by Lord Henry
  • Like 1

Share this post


Link to post
6 minutes ago, Lord Henry said:

Olá.

Eu criei o tutorial depois do seu sim. Foi mais para demonstrar como fazer um tutorial bem feito e detalhado.

PORÉM

A informação contida no meu tutorial já existia faz bastante tempo, eu apenas repostei e mudei algumas coisas pequenas. Fonte original: 

 

Era  deste post mesmo que eu estava me referindo.

 

11 hours ago, brunob22 said:

desculpe . mais ta com problema comigo? foi ver antes de cagar pelos dedos?? 

2:28 DA MANHA

goGLhpC.png

 

4xUpTeW.png

MEIO DIA..

por favor.. olhar antes ¬¬

Talvez eu possa te indicar um oculista, até por que em nem um momento eu citei '' tópico '' e sim '' post '', peço que VOCÊ preste mais a atenção antes de sair '' cagando pelos dedos '' usando seu próprio termo ... e sim, tenho sim, você é muito arrogantezinho pro meu gosto... deveria olhar para si próprio.

Edited by OverKILL

Share this post


Link to post

Galera, por favor. Não vamos ficar discutindo no tópico. Devemos resolver nossas diferenças por privado.

Share this post


Link to post
2 minutes ago, Lord Henry said:

Galera, por favor. Não vamos ficar discutindo no tópico. Devemos resolver nossas diferenças por privado.

Claro, peço desculpas pela minha atitude, dificilmente faço isso, mas ele me chamou muito atenção, encerrei por aqui.

Edited by OverKILL

Share this post


Link to post

relaxa.. daqui a pouco eu apago isso.. ja que as crianças ficam enchendo a porra do saco.. deixa para o 'SENHOR' ai fazer por mim kkkkkkkkkkkkkkk

Share this post


Link to post

Realmente não sei o porque da discussão kkkkk, ambos são totalmente diferentes, cada um abordou um tipo de database (padrão/personalizada)… apesar das querys serem iguais os métodos de utilização mudam. O que importa é que ambos contribuíram, cada um do seu jeito!

Só alguns detalhes:

On 16/10/2018 at 02:28, brunob22 said:

dbExec(db, "CREATE TABLE IF NOT EXISTS SERVIDOR (CONTAPLAYER TEXT,SERIAL_PLAYER TXT,SENHA_PLAYER TEXT,DINHEIRO_PLAYER INT)")

 

O certo seria o tipo: TEXT e não TXT (Referência)

Poderia ter comentado sobre dbPrepareString e dbFree que são fundamentais também.

Deixo também alguns operadores muito utilizados:

Share this post


Link to post
7 hours ago, MaligNos said:

Realmente não sei o porque da discussão kkkkk, ambos são totalmente diferentes, cada um abordou um tipo de database (padrão/personalizada)… apesar das querys serem iguais os métodos de utilização mudam. O que importa é que ambos contribuíram, cada um do seu jeito!

Só alguns detalhes:

O certo seria o tipo: TEXT e não TXT (Referência)

Poderia ter comentado sobre dbPrepareString e dbFree que são fundamentais também.

Deixo também alguns operadores muito utilizados:

esses que mostrei sao os que eu uso

e vou arruma o texto errado ali vlw

 

EDIT: arrumado meu amigo.. pelo 1 venho comenta coisa que presta kkk

Edited by brunob22

Share this post


Link to post

Olá!

Sei que já faz um tempo bom desde que postou o tópico, mas só gostaria de agradecer, comecei a aprender DB ontem, e graça a esse tutorial, e a outro gringo, me ajudou bastante, já consigo criar de tudo utilizando Database agora.

Share this post


Link to post
On 25/11/2018 at 22:57, VazErn said:

Olá!

Sei que já faz um tempo bom desde que postou o tópico, mas só gostaria de agradecer, comecei a aprender DB ontem, e graça a esse tutorial, e a outro gringo, me ajudou bastante, já consigo criar de tudo utilizando Database agora.

opa ai sim ^^

Share this post


Link to post

Esse tópico tá tudo errado. SQLite não é uma versão Lite do SQL. Você sabe o que é SQL? E mais: Você também confunde MySQL com SQL e com SQLite.

SQLite é uma biblioteca. Explicando de uma forma muito simples, ela permite implementar um pequeno banco de dados relacional dentro da própria aplicação, o que pode ser interessante para alguns casos, porque elimina a necessidade de executar um SGBD como o MySQL para lidar com uma quantidade pequena de dados.

SQL é uma linguagem de consulta, usada em bancos de dados relacionais. Eles NÃO SÃO A MESMA COISA, portanto não é nada lúcido dizer que SQLite é uma versao "lite" do SQL. 

MySQL é um SGBD. Lembra que eu disse que o SQLite pode ser um substituto do SGBD? Pois é, então não dá pra misturar os dois dessa maneira. Ah, e não, o SQLite também NÃO É UMA VERSÃO LITE DO MYSQL.

Sorry por reviver o tópico.

Edited by BrunnoFdc

Share this post


Link to post
17 minutes ago, BrunnoFdc said:

MySQL ou SQLite? Se decide. Um não é a mesma coisa que o outro.

Este tutorial é em MySQL.

  • Confused 1

Share this post


Link to post
41 minutes ago, Lord Henry said:

Este tutorial é em MySQL.

Edit: Na verdade este tutorial é em SQLite. Mas ele usa sintaxes como dbConnect pois o exemplo se trata de banco de dados externo.

Edited by Lord Henry

Share this post


Link to post
2 hours ago, BrunnoFdc said:

Esse tópico tá tudo errado. SQLite não é uma versão Lite do SQL. Você sabe o que é SQL? E mais: Você também confunde MySQL com SQL e com SQLite.

SQLite é uma biblioteca. Explicando de uma forma muito simples, ela permite implementar um pequeno banco de dados relacional dentro da própria aplicação, o que pode ser interessante para alguns casos, porque elimina a necessidade de executar um SGBD como o MySQL para lidar com uma quantidade pequena de dados.

SQL é uma linguagem de consulta, usada em bancos de dados relacionais. Eles NÃO SÃO A MESMA COISA, portanto não é nada lúcido dizer que SQLite é uma versao "lite" do SQL. 

MySQL é um SGBD. Lembra que eu disse que o SQLite pode ser um substituto do SGBD? Pois é, então não dá pra misturar os dois dessa maneira. Ah, e não, o SQLite também NÃO É UMA VERSÃO LITE DO MYSQL.

Sorry por reviver o tópico.

oque um pouco de google e wiki não faiz kkkkkkkkkkkkk

Share this post


Link to post
7 hours ago, brunob22 said:

oque um pouco de google e wiki não faiz kkkkkkkkkkkkk 

Além desses dois, lhe recomendo também: w3schools e um dicionário.

Share this post


Link to post

Galera, vamos parar com o assunto Off-Topic fazendo favor.

Se quiserem discutir mais, façam por mensagem privada.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.