2013-03-08 50 views
0

我试图将一些数据保存到表中。我从数据库中获取数据,它工作正常。 我的问题是数据没有保存在表中。它是一个像表= {}的lua表,而不是数据库表。Corona sdk,函数按错误顺序运行?

也许它被保存,但它看起来像保存之前完成打印,即使我之后打电话给他们。实际上,我的网络请求似乎最后在我的程序中完成,即使我先打电话。

我真的很想知道这个原因。有任何想法吗?

下面是代码:

---TESTING! 

print("Begin teting!") 

--hej = require ("test2") 

local navTable = { 
    Eng_Spd = 0, 
    Spd_Set = 0 
} 

local changeTab = function() 
    navTable.Eng_Spd = 2 
end 

printNavTable = function() 
    print("navTable innehåller: ") 
    print(navTable.Eng_Spd) 
    print(navTable.Spd_Set) 
end 


require "sqlite3" 
local myNewData 
local json = require ("json") 
local decodedData 



local SaveData2 = function() 
    local i = 1 
    local counter = 1 
    local index = "livedata"..counter 
    local navValue = decodedData[index] 
    print(navValue) 

    while (navValue ~=nil) do 
     --tablefill ="INSERT INTO navaltable VALUES (NULL,'" .. navValue[1] .. "','" .. navValue[3] .."','" .. navValue[4] .."','" .. navValue[5] .."','" .. navValue[6] .."');" 
     --print(tablefill) 
     --db:exec(tablefill) 
     if  navValue[3] == "Eng Spd" then navTable.Eng_Spd = navValue[4] 
     elseif navValue[3] == "Spd Set" then navTable.Spd_Set = navValue[4]  
     else print("blah") 
     end 
     print(navTable.Eng_Spd) 
     print(navTable.Spd_Set) 
     counter=counter+1 
      index = "livedata"..counter 
       navValue = decodedData[index]   

    end 
end 

local function networkListener(event) 
    if (event.isError) then 
      print("Network error!") 
    else 
      myNewData = event.response 
      print("From server: "..myNewData) 
      decodedData = (json.decode(myNewData)) 
    SaveData2() 
    --db:exec("DROP TABLE IN EXISTS navaltable") 
    end 
end 

--function uppdateNavalTable() 
    network.request("http://127.0.0.1/firstMidle.php", "GET", networkListener) 

--end 
changeTab() 
printNavTable() 
--uppdateNavalTable() 
printNavTable() 

print("Done!") 

这里是输出:

Copyright (C) 2009-2012 C o r o n a L a b s I n c . 
     Version: 2.0.0 
     Build: 2012.971 
Begin teting! 
navTable innehåller: 
2 
0 
navTable innehåller: 
2 
0 
Done! 
From server: {"livedata1":["1","0","Eng Spd","30","0","2013-03-15 11:35:48"],"li 
vedata2":["1","1","Spd Set","13","0","2013-03-15 11:35:37"]} 
table: 008B5018 
30 
0 
30 
13 

而且顺便说一句,navTableinnehÃ¥米勒表示navTable包含。

+0

请至少为什么打印顺序错误。程序是不是按顺序运行? – Dave 2013-03-21 17:36:53

回答

1

答案是networklistener与其余代码并行运行。