简体   繁体   中英

lua corona runtime error: attempt to perform arithmetic on field '?' (a nil value)

i am trying to display a form summary using corona. it works at first but when i add in 2 new question i get an error 在此处输入图片说明

so there is my code for scene 15

--line689   checkEBASComplete()

--line691   function  checkAMTComplete()
            local tempScore = 0
            for i = 1, 11 do
--line694   tempScore = tempScore + amtRating_Arr[i]
            if (amtRating_Arr[i] == -1) then
                amtScore = 0
                amtScore_text.text = "Test Incomplete"
            else
                amtScore = tempScore
                amtScore_text.text = tostring(amtScore)
                end

                end

                tempScore = 0
                end
--line707   checkAMTComplete()

    function saveResults()

        local q = [[UPDATE EBAS_DEP SET rating1=']]..ebasRating_Arr[1] .. [[',rating2=']] .. ebasRating_Arr[2] .. [[',rating3=']] .. ebasRating_Arr[3] .. [[',rating4=']] .. ebasRating_Arr[4] .. [[',rating5=']] .. ebasRating_Arr[5] .. [[',rating6=']] .. ebasRating_Arr[6] .. [[',rating7=']] .. ebasRating_Arr[7] .. [[',rating8=']] .. ebasRating_Arr[8] .. [[',rating9=']] .. ebasRating_Arr[9] .. [[',rating10=']] .. ebasRating_Arr[10] .. [[',rating11=']] .. amtRating_Arr[1] .. [[',rating12=']] .. amtRating_Arr[2] .. [[',rating13=']] .. amtRating_Arr[3] .. [[',rating14=']] .. amtRating_Arr[4] .. [[',rating15=']] .. amtRating_Arr[5] .. [[',rating16=']] .. amtRating_Arr[6] .. [[',rating17=']] .. amtRating_Arr[7] .. [[',rating18=']] .. amtRating_Arr[8] .. [[',rating19=']] .. amtRating_Arr[9] .. [[',rating20=']] .. amtRating_Arr[10] .. [[',rating21=']] .. amtRating_Arr[11] .. [[',ebas_score=']] .. ebasScore ..[[',amt_score=']] .. amtScore ..  [['WHERE id=']].. _G.EBAS_ID..[[';]]
        db:exec( q )
        print(db:errcode(), db:errmsg())

    end

is anyone able to advise? thanks

so this is the solution of my own question, hope it helps any new corona users like me

        function  checkEBASComplete()
        local tempScore = 0
        for i = 1, #ebasRating_Arr do
            print("EBAS:"..ebasRating_Arr[i])
            tempScore = tempScore + ebasRating_Arr[i]
            if (ebasRating_Arr[i] == -1) then
                ebasScore = 0
                ebasScore_text.text = "Test Incomplete"
            else
                ebasScore = tempScore
                ebasScore_text.text = tostring(ebasScore)
            end

        end

        tempScore = 0
    end

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM