2012-10-03 1 views
1

나는 이것에 대한 확실한 대답을 찾을 수 없습니다, 비동기 웹 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}); 
+0

는 최종 결과가 아닌, 좋아 보인다 콜백 없습니다. –

답변

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