Hello.
I’m studying how to get data from remote using this tutorial :
https://coronalabs.com/blog/2012/11/20/how-to-download-json-data-from-mysql-using-corona-sdk/
I used the code but it don’t insert data on my database sqlite. The variable “movie” is always nil, but if i print event.response the console show me the datas :
From server: [[“discus",“poma”],[“discus”,“poma”]]
where i mistake?
It seems that there is a issue during Json decode phase.
i allegate the code.
--php code \<?php $host="xxxxx"; $username="xxxxxxx"; $db\_name="xxxxxxxx"; // Create connection $conn = mysqli\_connect($host, $username) or die("Error " . mysqli\_error($connection)); mysql\_select\_db("$db\_name") or die ("cannot select DB"); $sql = "select \* from `Pesci`"; $result = mysql\_query($sql); $json = array(); if(mysql\_num\_rows($result)){while($row=mysql\_fetch\_row($result)){ $json[]=$row; } } mysql\_close($db\_name); echo json\_encode($json); ?\> --Client code local sqlite3 = require ( "sqlite3" ) local myNewData local json = require ( "json" ) local decodedData local db local SaveData = function () -- Save new data to a sqlite file -- Open SQLite database, if it doesn't exist, create database local path = system.pathForFile( "movies.sqlite", system.DocumentsDirectory ) db = sqlite3.open( path ) print( path ) -- Set up the table if it doesn't exist local tablesetup = "CREATE TABLE IF NOT EXISTS mymovies (id INTEGER PRIMARY KEY, movie, year);" db:exec( tablesetup ) print( tablesetup ) -- Save data to database local counter = 1 local index = "movie"..counter local movie = decodedData[index] print( movie ) while ( movie ~= nil ) do local tablefill ="INSERT INTO mymovies VALUES (NULL,'" .. movie[2] .. "','" .. movie[3] .."');" print( tablefill ) db:exec( tablefill ) counter = counter+1 index = "movie"..counter movie = decodedData[index] end -- Everything is saved to SQLite database; close database db:close() -- Load database contents to screen -- Open database local path = system.pathForFile( "movies.sqlite", system.DocumentsDirectory ) db = sqlite3.open( path ) print( path ) -- Print all of the table contents local sql = "SELECT \* FROM mymovies" for row in db:nrows(sql) do local text = row.movie .. " " .. row.year local t = display.newText( text, 20, 30\*row.id, native.systemFont, 24 ) t:setFillColor( 0.6 ) end db:close() end local function networkListener( event ) if ( event.isError ) then print( "Network error!" ) else myNewData = event.response print ( "From server: " .. myNewData ) decodedData = ( json.decode( myNewData ) ) SaveData() end end network.request( "http://acquariu.altervista.org/down.php", "GET", networkListener )