Jump to content

Problems with JSON in lua and php


Recommended Posts

Hi! I've done a script in which i have encoded a table into JSON ans then i upload it into the mysql. The problem is that when i try to decode it with php, it doesnt work. Both scripts work fine Idk if its a problem of the Json-decode function for php or what... if someone knows how to do this..

Link to comment

What I want to do is to get some information about the character when you create it, encode it into JSON ( because there are some arrays ) and upload it into a database. Once it's upload I want to get this information with php.

Some of the code:

Lua: ( the table and how I upload it to the mysql, but there are no errors with it. I mean, it uploads all right. )

  
-- the table is this one: 
players[source] = { 
            ["id"] = data.id, 
            ["user"] = data.user, 
            ["pass"] = data.pass, 
            ["nombre"] = nombre, 
            ["apellido"] = apellido, 
            ["edad"] = edad, 
            ["altura"] = altura, 
            ["peso"] = peso, 
            ["skin"] = skin, 
            ["sexo"] = sexo, 
            ["dinero"] = 200, 
            ["salud"] = 100, 
            ["chaleco"] = 0, 
            ["armas"] = amras, 
            ["andar"] = style, 
            ["estado"] = 1, 
            ["pos"] = { ["x"]=64.80078125, ["y"]=-234.880859375, ["z"]=1.5723714828491, ["dimension"]=0, ["interior"]=0}, 
            ["staff"] = { ["admin"] = 0, ["mod"] = 0, ["go"] = 0 } 
 } 
  
--then I encode it with: 
  
info = toJSON(players[source]) 
  
--and I upload it with: 
  
local u = exports.sql:query_free( "UPDATE usuarios SET info = '%s' WHERE user ='%s'", info, data.user ) 
  

When I upload this I look in the database if it's well created and it's like this:

  
[ { "altura": 170, "peso": 75, "nombre": "NAME", "chaleco": 0, "skin": 25, "edad": 22, "salud": 100, "apellido": "GARCIA", "user": "theuser", "id": 1, "pass": "thepass", "staff": { "mod": 0, "admin": 0, "go": 0 }, "sexo": "Hombre", "estado": 1, "armas": "NULL", "dinero": 200, "pos": { "y": -234.880859375, "x": 64.80078125, "z": 1.5723714828491211, "interior": 0, "dimension": 0 } } ] 
  

Then, when the player login in the website, I get the INFO:

  
... 
        $id = mysqli_query($conex,'SELECT * FROM usuarios WHERE user ="'.mysqli_real_escape_string($conex, $user).'"'); 
                if ($id) { 
                while($row = mysqli_fetch_array($id, MYSQLI_ASSOC)) { 
                     
  
                $_SESSION['info'] = $row['info']; 
... 
  

then, I call '$_SESSION['info']' in the file I want to get the information and I use it like this:

  
$json1 = $_SESSION['info']; 
  
$json = json_decode($json1, true); 
  
$charname = "".$json->{'nombre'}."_".$json->{'nombre'}; 
  

but the '$json->{'nombre'}' and the $json->{'apellido'} dont return what they should return, and I don't know what's the problem.

EDIT: I find the solution, php doesn't read the ''['' '']'' and I had to replace them. Now it gets the information. Tanks for everything.

Link to comment

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
  • Recently Browsing   0 members

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