1

我无法找到一个明确的答案,异步 web sql 真的让我很困惑。如何使用基于父 SELECT 查询的数据执行 SELECT 查询?这是我认为有效但实际上不是的片段:

db.transaction(function(tx){
    tx.executeSql('SELECT a, b FROM  mytable WHERE c=5', [], function(tx,results) {
        var i = results.rows.length;
        while(i--){
            var votes = results.rows.item(i).a;
            var marker = results.rows.item(i).b;
            tx.executeSql('SELECT a FROM mytable WHERE c=?', [marker], function(tx,aresults) {
                if(!aresults){
                    //do something
                } else {
                    myScore += (votes*100)/aresults.rows.item(0).a;
                }
            }(marker));
        }
        nextFunction();
    });
}, function(){onError});
4

1 回答 1

0

尝试这个:

function firstQuery(){

  db.transaction(function(tx){
      tx.executeSql('SELECT a, b FROM  mytable WHERE c=5', [], 
        function(tx,results) {
          var i = results.rows.length;
          while(i--){
               secondQuery(results.rows[i]);
          }       
      });
  }, function(){onError});

}

function secondQuery(responseQuery){

    var votes = responseQuery.a;
    var marker = responseQuery.b;

      db.transaction(function(tx){
      tx.executeSql('SELECT a FROM mytable WHERE c=?', [marker], function(tx,aresults) {
          if(!aresults){
              //do something
          } else {
              myScore += (votes*100)/aresults.rows.item(0).a;
          }
      }(marker));
    }, function(){onError});
}
于 2016-03-25T03:13:01.723 回答