Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript web sql中的嵌套选择查询_Javascript_Html_Web Sql - Fatal编程技术网

Javascript web sql中的嵌套选择查询

Javascript web sql中的嵌套选择查询,javascript,html,web-sql,Javascript,Html,Web Sql,我无法找到一个明确的答案,异步web sql真的让我大吃一惊。如何使用基于父选择查询的数据执行选择查询?以下是一段我认为有效但实际上无效的片段: db.transaction(function(tx){ tx.executeSql('SELECT a, b FROM mytable WHERE c=5', [], function(tx,results) { var i = results.rows.length; while(i--){

我无法找到一个明确的答案,异步web sql真的让我大吃一惊。如何使用基于父选择查询的数据执行选择查询?以下是一段我认为有效但实际上无效的片段:

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});
试试这个:

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});
}

看起来还可以,但最终结果不是回调。