2

I am fetching values from web service. And I have to insert those values into the table in Web SQL database.

I have 4 records. I have inserted the following code into the loop, but only the last record is added in database and not the first 3 records.

for(var t=0;t<main_category.length;t++){
        db.transaction(function(tx){
            var insertStatement="INSERT INTO main_menu(catId,catName,catImage) VALUES(?,?,?)";
            tx.executeSql(insertStatement, [menu_id, menu_name, menu_img]);
            console.log("values inserted "+ t);
        });
}

I tried many solutions, following link has one of them,

Web SQL Database + Javascript loop

But, it did not work. Please suggest me how can I populate the table with dynamic values.

1 Answer 1

2

try this:

for(var t = 0; t < main_category.length; t++){
        (function(i) {
            var item = main_category[i];
            var menu_id = item.id, menu_name = item.name, menu_img = item.img;
            db.transaction(function(tx) {
                var insertStatement="INSERT INTO main_menu(catId,catName,catImage) VALUES(?,?,?)";
                tx.executeSql(insertStatement, [menu_id, menu_name, menu_img]);
                console.log("values inserted "+ i);
            });
        })(t);
}

result:

Sign up to request clarification or add additional context in comments.

3 Comments

but the values are not getting inserted in the table in database.
i am working this code.. puu.sh/a1Lds/d72bb5e8d3.png , so which browser are you using?
Aah! made slight changes, its working just the catNames and catImages are having issues, all values are getting inserted there in first row then decrement by 1 in second row and so on.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.