我有我的webdb的代码,我尝试删除一个项目并将订单设置为另一个,但它只更改最后一项。
for (var i=ordine2; i < lunghezza-1+ordine2; i++) {
var db = miodb.webdb.db;
var ordine3=ordine2+i+1;
var ordine4=ordine2+i;
db.transaction(function(tx){
tx.executeSql("UPDATE todo SET ordine = " + "'" + ordine4 + "'" + " WHERE ordine=?", [ordine3],
miodb.webdb.onSuccess,
miodb.webdb.onError);
});
}
这是我的表: id |内容|为了
1 | 0 | 0 |
2 | 1 | 1 |
3 | 2 | 2 |
4 | 3 | 3 |
5 | 4 | 4 |
6 | 5 | 5 |
如果我删除第一项我希望所有其他项目将订单更改为当前订单-1,但它不起作用,只有最后一项更改订单,ordine2设置为0,lunghezza是长度数组。 我可以修理谁?
答案 0 :(得分:0)
根本不需要循环。以下更新声明怎么样?
UPDATE todo SET ordine = ordine - 1
您可能需要在其上添加适当的where子句,例如“WHERE ordine&gt; ordine2”。我不完全明白你要做的是什么,所以我不能给你确切的代码。
另外,你真的不应该在构建你的SQL语句时使用字符串连接,使用?对于每个参数并将它们放入数组中,就像你为ordine3所做的那样,这样你知道它们将被正确转义。