Jump to content

[Duda] MySQL


Narutimmy

Recommended Posts

Un ejemplo:

local result = dbPoll( dbQuery( dataBase, "SELECT * FROM NOMBRE_TABLA WHERE user_name=?", 'Narutimmy' ), -1  ) 
         
                if #result > 0 then 
                    outputChatBox( result[1].user_rango ) 
                end 
                 
    end 
) 

*No veo el nombre de la tabla en la foto, así que en vez de eso escribí 'NOMBRE_TABLA'.

*El -1 es el tiempo de espera para la solicitud, se mide en milisegundos y el -1 es tiempo infinito.

Para que entiendas, 'dbPoll' devolverá una tabla con todos los resultados que 'dbQuery' encuentre, en este caso todos los 'user_name' deberían ser distintos (hay que revisar que 'result' sea una tabla con al menos un dato para saber que se encontraron resultados), por lo tanto solo devolverá una tabla con un resultado y con esta estructura:

result = { 
[1] = { id = 1, user_name = 'Narutimmy', user_password = 'MD5 Hash (que tu censuraste )', user_email = "[email protected]", user_rango = 1, user_puntos = 238, user_posts = 11, user_comentarios = 13 } 
} 

Si quisieras conseguir los datos al loggearse el usuario, deberías hacer algo así:

addEventHandler( 'onPlayerLogin', root, 
    function(_, account) 
        local result = dbPoll( dbQuery( dataBase, "SELECT * FROM NOMBRE_TABLA WHERE user_name=?", getAccountName( account ) ), -1  ) 
         
                if #result > 0 then 
                                                             outputChatBox( result[1].user_rango ) --Lo reemplazas por lo que quieras hacer con los datos. 
                end 
             
                 
    end 
) 

También, con una solicitud como esta:

dbQuery( dataBase, "SELECT user_rango FROM NOMBRE_TABLA WHERE user_name=?", 'Narutimmy'  ) 

Te devolverá solo el 'user_rango' sin tomar en cuenta los demás datos.

Espero haberme explicado bien, si me falto algo que alguien lo agregue o me corrija.

mmm y como ago para conectar? supongo que pide el pass , ip y demas no?, algun ejemplo.. por favor :D

Para esto utilizas 'dbConnect', en la misma wiki esta este ejemplo:

test_db = dbConnect( "mysql", "dbname=frank;host=1.2.3.4", "username", "password", "share=1" ) 

Link to comment
Un ejemplo:
local result = dbPoll( dbQuery( dataBase, "SELECT * FROM NOMBRE_TABLA WHERE user_name=?", 'Narutimmy' ), -1  ) 
         
                if #result > 0 then 
                    outputChatBox( result[1].user_rango ) 
                end 
                 
    end 
) 

*No veo el nombre de la tabla en la foto, así que en vez de eso escribí 'NOMBRE_TABLA'.

*El -1 es el tiempo de espera para la solicitud, se mide en milisegundos y el -1 es tiempo infinito.

Para que entiendas, 'dbPoll' devolverá una tabla con todos los resultados que 'dbQuery' encuentre, en este caso todos los 'user_name' deberían ser distintos (hay que revisar que 'result' sea una tabla con al menos un dato para saber que se encontraron resultados), por lo tanto solo devolverá una tabla con un resultado y con esta estructura:

result = { 
[1] = { id = 1, user_name = 'Narutimmy', user_password = 'MD5 Hash (que tu censuraste )', user_email = "[email protected]", user_rango = 1, user_puntos = 238, user_posts = 11, user_comentarios = 13 } 
} 

Si quisieras conseguir los datos al loggearse el usuario, deberías hacer algo así:

addEventHandler( 'onPlayerLogin', root, 
    function(_, account) 
        local result = dbPoll( dbQuery( dataBase, "SELECT * FROM NOMBRE_TABLA WHERE user_name=?", getAccountName( account ) ), -1  ) 
         
                if #result > 0 then 
                                                             outputChatBox( result[1].user_rango ) --Lo reemplazas por lo que quieras hacer con los datos. 
                end 
             
                 
    end 
) 

También, con una solicitud como esta:

dbQuery( dataBase, "SELECT user_rango FROM NOMBRE_TABLA WHERE user_name=?", 'Narutimmy'  ) 

Te devolverá solo el 'user_rango' sin tomar en cuenta los demás datos.

Espero haberme explicado bien, si me falto algo que alguien lo agregue o me corrija.

mmm y como ago para conectar? supongo que pide el pass , ip y demas no?, algun ejemplo.. por favor

Para esto utilizas 'dbConnect', en la misma wiki esta este ejemplo:

test_db = dbConnect( "mysql", "dbname=frank;host=1.2.3.4", "username", "password", "share=1" ) 

Oh, gracias, era justo lo que necesitaba, ahora solo me falta pensar en como inplementarlo, ya que no me habia pasado por la cabeza... que en la pagina los users unan 1 username y en el servidor usan otro la mayoria., Gracias

Link to comment

No estoy seguro, pero seria algo asi o esta mal :S?? @Alexs_Steel

local usernamedzf = getPlayerAccount(source) 
local dyf_db = dbConnect( "mysql", "dbname=frank;host=1.2.3.4", "username", "password", "share=1" ) 
local result = dbPoll( dbQuery( dyf_db, "SELECT * FROM u_miembros WHERE user_name=?", ..usernamedzf ), -1  ) 
        
                
  
  
addCommandHandler("give", 
function(pSource) 
if (result[1].user_rango == 3) then --- el 3 seria en rango VIP 
  
  
triggerClientEvent(pSource, "onGIPOpened", pSource)  
end 
end ) 

Link to comment

No defines 'source' en ningún lado, intenta conseguir los datos al identificarse.

local dyf_db = dbConnect( "mysql", "dbname=frank;host=1.2.3.4", "username", "password", "share=1" ) --Doy por hecho que reemplazaras los datos por los de tu base de datos. 
addEventHandler( 'onPlayerLogin', root, 
    function(_, account) 
        local result = dbPoll( dbQuery( dyf_db, "SELECT user_rango FROM u_miembros WHERE user_name=?", getAccountName( account ) ), -1  ) 
         
                if #result > 0 then 
                    if result[1].user_rango == 3 then 
                        setElementData( source, 'V.I.P', true ) 
                    end 
                end 
             
                 
    end 
) 
  
addCommandHandler( 'give', 
function( thePlayer ) 
  if getElementData( thePlayer, 'V.I.P' ) then 
    triggerClientEvent(thePlayer, "onGIPOpened", thePlayer) 
  end 
end 
)  

Link to comment
No defines 'source' en ningún lado, intenta conseguir los datos al identificarse.
local dyf_db = dbConnect( "mysql", "dbname=frank;host=1.2.3.4", "username", "password", "share=1" ) --Doy por hecho que reemplazaras los datos por los de tu base de datos. 
addEventHandler( 'onPlayerLogin', root, 
    function(_, account) 
        local result = dbPoll( dbQuery( dyf_db, "SELECT user_rango FROM u_miembros WHERE user_name=?", getAccountName( account ) ), -1  ) 
         
                if #result > 0 then 
                    if result[1].user_rango == 3 then 
                        setElementData( source, 'V.I.P', true ) 
                    end 
                end 
             
                 
    end 
) 
  
addCommandHandler( 'give', 
function( thePlayer ) 
  if getElementData( thePlayer, 'V.I.P' ) then 
    triggerClientEvent(thePlayer, "onGIPOpened", thePlayer) 
  end 
end 
)  

Bueno, edite todo pero.... al final me da este error:

Lx59fGk.png

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...