I'm hittig my head on this and i will be glad for any help. I need to store in a database a context (a list of string ids) for another page. I open a page with a list of artworks and this page save into the database those artowrks ids. When i click on an artwork i open its webpage but i can access the database to know the context and refer to the next and prev artwork.
This is my code to retrieve the contex:
 updateContext = function () {
alert("updating context");
  try {
   mydb.transaction(
    function(transaction) {
     transaction.executeSql("select artworks.number from artworks, collections where collections.id = artworks.section_id and collections.short_name in ('cro', 'cra', 'crp', 'crm');", [], contextDataHandler, errorHandler);
    });
  } catch(e) {
   alert(e.message);
  }
 }
the contextDatahandler function then iterates through the results and fill again the current_context table:
 contextDataHandler = function(transaction, results) {
try {
   mydb.transaction(
    function(transaction) {
     transaction.executeSql("drop table current_context;", [], nullDataHandler, errorHandler);
     transaction.executeSql("create table current_context(id String);", [], nullDataHandler, errorHandler);
    }
   )
  }
  catch(e) {
   alert(e.message);
  }
var s = "";
  for (var i=0; i < results.rows.length; i++) {
   var item = results.rows.item(0);
   s += item['number'] + " ";
   mydb.transaction(
     function(tx) {
      tx.executeSql("insert into current_context(id) values (?);", [item['number']]);
     }
   )
  }
  alert(s);
 }
the result is, i get the current_context table deleted, recreated, and filled, but all the rows are filled with the LAST artwork id. the query to retrieve the artworks ids works, so i think it's a transaction problem, but i cant figure out where.
thanks for any help