2014-03-31 84 views
0

我在這裏有一個破損的函數代碼,它將從SQLite數據庫中檢索特定的項目,我的問題是我想將檢索的項目的值傳遞給displayContent,但我不知道如何這樣做,我的代碼只用於檢索單行而不是多行,因爲SecondColumn的內容不相同。我現在無能爲力。從SQLite數據庫檢索一個特定的項目

這裏是我的代碼:

function (content) 
{ 
    var displayContent; 
    db.transaction(function (tx) { tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content]); }); 
} 

任何額外的想法將欣然接受,我堅持這一點。

回答

1

tx.executeSql方法需要一個回調,然後您可以處理查詢的結果。看看這裏,你可以看到一個例子:http://www.tutorialspoint.com/html5/html5_web_sql.htm

正如你可以看到有,他們做到以下幾點:

db.transaction(function (tx) { 
    tx.executeSql('SELECT * FROM LOGS', [], function (tx, results) { 
    var len = results.rows.length, i; 
    msg = "<p>Found rows: " + len + "</p>"; 
    document.querySelector('#status').innerHTML += msg; 
    for (i = 0; i < len; i++){ 
    msg = "<p><b>" + results.rows.item(i).log + "</b></p>"; 
    document.querySelector('#status').innerHTML += msg; 
    } 
}, null); 
}); 

在你的情況,你可能會做這樣的事:

function (content) 
{ 
    db.transaction(function (tx) { 
     tx.executeSql('SELECT FirstColumn FROM SampleTable WHERE SecondColumn = ?',[content], function (tx, results) { 
      if (results.rows.length) { 
       var displayContent = results.rows.item(0).FirstColumn; 
       document.querySelector('...').innerHTML = ...; // Display something 
      } 
     }); 
    }); 
} 

如果你想嘗試等待查詢,看看這個前面的Stackoverflow問題:HTML5 WebSQL: how to know when a db transaction finishes?

+0

非常感謝,現在一切都很清楚。我只是在我的應用程序中測試它,它的工作原理。 –