SQLite 테이블에서 행 수를 계산하는 JS 함수를 만들려고합니다.SQLite 테이블에서 행 수를 계산하는 JS 함수
function countRows(){
db.transaction(function (tx){
tx.executeSql('SELECT id FROM table', [], function (tx, results) {
var len = results.rows.length;
alert(len);
});
});
}
위 코드는 테이블에 행 번호가있는 경고를 표시합니다. 그러나, 경고 상자를 표시하는 대신 숫자를 반환하는 함수를 만들고 싶습니다.
내가 시도 : 다음
function countRows(){
db.transaction(function (tx){
tx.executeSql('SELECT id FROM table', [], function (tx, results) {
var len = results.rows.length;
return len;
});
});
}
과 :
var number = countRows();
alert (number); // returns "undefined"
병렬 예를 잘 작동하는 반면, 위의 예는, "정의되지 않은"반환
function count(){
return 3;
}
var number = count();
alert (number); // returns 3
내가 할당 할 변수에 숫자를 입력하여 다른 SQL 쿼리를 만들고 다른 테이블의 행 수를 계산 한 다음 두 결과를 비교할 수 있습니다. .
PHP에서는이 될 것이다 :
$sql1 = mysql_query('SELECT COUNT(*) FROM table1');
$rows1 = mysql_result($sql1, 0);
$sql2 = mysql_query('SELECT COUNT(*) FROM table2');
$rows2 = mysql_result($sql2, 0);
if ($row1>$row2){}
너의 다니엘의 제안은 매우 도움이된다, 그러나 그들은 내 문제가 해결되지 않습니다. 콜백을 사용하면 코드의 어느 곳에서나 함수를 실행할 수 있지만 그 일은 내가하려고하는 것이 아닙니다. 변수에 값을 할당하여 두 테이블의 행 수를 계산 한 다음 결과를 두 개의 다른 변수에 넣고 if 문을 사용하여 결과를 비교합니다. if ([NoOfRowsIn1stTable]> [NoOfRowsIn2ndTable]) { }. – lukeshek
왜 tblname이라는 전역 함수를 사용하지 않고 countRows()를 호출하기 전에 tblName = "table1"; countRows (function (num) {alert (num)}); tblName = "table2"; countRows (function (num) {alert (num)}); tx.executeSql 내부 : tx.executeSql ('SELECT id FROM'+ tblName, [], function (tx, results) – Panagiotis
구현하기가 쉽지 않지만 구현하기가 쉽습니다. 마지막 쿼리는 이전 쿼리에 대한 결과를 비교할 함수를 전달합니다. 이렇게하면 하나의 쿼리를 실행할 때 이전 쿼리가 완료되었음을 알 수 있습니다. countRowsTbl1 (countRowsTbl2 (callbackAfterBothQueriesAreExecuted)); – Ivan