.:HyPeX:. Posted May 20, 2014 Posted May 20, 2014 Well, i get error: trying to concatenate field (?) a nil value. This happens on the dbQuery "SELECT * FROM "..loadUpTable[1] line. local loadUpTable = {} function LoadUpOnResourceStart(resource) if resource ~= getThisResource() then return end local dbqery = dbQuery(Database, "SELECT name FROM sqlite_master WHERE type='table'") local tables = dbPoll(dbqery, -1) outputChatBox("#6969C9*AS: Restoring "..#tables.." records from sqlite.", root, 255,255,255,true) for i=1,#tables do loadUpTable[i] = tables[i] end for i,v in ipairs(loadUpTable) do local Query = dbQuery(Database, "SELECT * FROM "..loadUpTable[i][1]) local result = dbPoll(Query, -1) Punished[ loadUpTable[i] ] = {} Punished[ loadUpTable[i] ][1] = result.Punishes[1] Punished[ loadUpTable[i] ][2] = result.Serial[1] Punished[ loadUpTable[i] ][3] = result.StartTime[1] Punished[ loadUpTable[i] ][4] = result.EndTime[1] Punished[ loadUpTable[i] ][5] = result.Duration[1] Punished[ loadUpTable[i] ][6] = result.PlayerName[1] Punished[ loadUpTable[i] ][7] = result.ResponsibleName[1] Punished[ loadUpTable[i] ][8] = result.Reason[1] end end addEventHandler("onResourceStart", resourceRoot, LoadUpOnResourceStart)
tosfera Posted May 20, 2014 Posted May 20, 2014 Since your table from mysql doesn't have an numeric index, you can't use a numeric index. You have to use strings.
.:HyPeX:. Posted May 20, 2014 Author Posted May 20, 2014 Yes, i didnt managed to want to edit the topic, i was fixing it on my side, i found a problem now, the length of table is returning 0.. and i dont know why. local loadUpTable = {} function LoadUpOnResourceStart(resource) if resource ~= getThisResource() then return end local dbqery = dbQuery(Database, "SELECT name FROM sqlite_master WHERE type='table'") local tables = dbPoll(dbqery, -1) outputChatBox("#6969C9*AS: Restoring "..#tables.." records from sqlite.", root, 255,255,255,true) local start = 0 for i,v in ipairs(tables) do start = start+1 for column, value in pairs(v) do loadUpTable[start] = value end end for i,v in ipairs(loadUpTable) do local Query = dbQuery(Database, "SELECT * FROM "..loadUpTable[i]) local result = dbPoll(Query, -1) outputChatBox(#result) for i,v in pairs(result) do outputChatBox(v) for col,val in ipairs(v) do outputChatBox(val) end end end end addEventHandler("onResourceStart", resourceRoot, LoadUpOnResourceStart)
Castillo Posted May 22, 2014 Posted May 22, 2014 I don't understand why are you doing all this: local start = 0 for i,v in ipairs(tables) do start = start+1 for column, value in pairs(v) do loadUpTable[start] = value end end It doesn't really make any sense to me, try my code above. local loadUpTable = { } function LoadUpOnResourceStart ( resource ) local dbqery = dbQuery ( Database, "SELECT name FROM sqlite_master WHERE type='table'" ) local tables = dbPoll ( dbqery, -1 ) outputChatBox ( "#6969C9*AS: Restoring ".. #tables .." records from sqlite.", root, 255, 255, 255, true ) for index, tbl in ipairs ( tables ) do loadUpTable [ index ] = tbl.name end for _, v in ipairs ( loadUpTable ) do local Query = dbQuery ( Database, "SELECT * FROM ".. v ) local result = dbPoll ( Query, -1 ) outputChatBox ( #result ) for i, v in pairs ( result ) do outputChatBox ( v ) for col, val in ipairs ( v ) do outputChatBox ( val ) end end end end addEventHandler ( "onResourceStart", resourceRoot, LoadUpOnResourceStart )
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now