SQLite Select语句

时间:2011-02-27 23:40:50

标签: javascript sqlite html5

有人可以帮助我,我认为这可能是一个简单的问题。我认为问题可能在于我的SQL select语句,但可能没有。

我有一个名为tableOne的表,有两列,name和total,调用函数editRecord并将有问题的行的id传递给它,这样我就可以选择这一行,然后调用editRecords2函数。第二个函数在html中生成一个表单,并将表中特定行的名称和总值添加到表单框中。

问题是所需行的值永远不会出现在表单中,始终是最后一行的值进入表单。代码如下,任何帮助都会很棒,谢谢!

 function editRecord(id) {
    db.transaction(function(tx) {

        tx.executeSql('SELECT * FROM tableOne WHERE id=?', [id], editRecords2);

    });
  }


function editRecords2() {
    f = $('#edit');
    f.html("");
    f.html(f.html() + ' <form method="get" id="edit_form"><div><input type="name" id="editname" value="' + r['name']+'" size="30"/><input type="number" current id="editamount" value="' + r['total']+'" name="amount" size="15" /><input type="submit" value="Save" /></div></form> ');
    } 

3 个答案:

答案 0 :(得分:6)

我还没有测试过代码 但这将有助于您获得输出

function editRecord(id) {
    db.transaction(function(tx) {

        tx.executeSql('SELECT * FROM tableOne WHERE id=?', [id], function(tx,results){
    for (var i=0; i < results.rows.length; i++){
       row = results.rows.item(i);
       editRecords2(row.name,row.total);
    }
  });

    });
  }


function editRecords2(name,total) {
    f = $('#edit');
    f.html("");
    f.html(f.html() + ' <form method="get" id="edit_form"><div><input type="name" id="editname" value="' + name+'" size="30"/><input type="number" current id="editamount" value="' + total+'" name="amount" size="15" /><input type="submit" value="Save" /></div></form> ');
    }

如果发生任何问题请与我联系。

答案 1 :(得分:1)

我认为您需要关注的是SQLite的用户定义函数。您希望SQL为表中的每条记录调用您的函数。这必须在SQL级别完成,而不是在JavaScript级别完成。在C ++中,它是一块蛋糕,SQLite有一个sqlite_create_function(),允许你这样做。我不确定是否有一个用于JavaScript,但这是你需要寻找的。

答案 2 :(得分:-1)

SQLite看起来有点棘手。但似乎如果尝试在没有服务器端语言的情况下访问它,您将无法获得成功

JavaScript sqlite