WebDb更新问题

时间:2011-05-29 16:31:24

标签: webdb

我有我的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是长度数组。 我可以修理谁?

1 个答案:

答案 0 :(得分:0)

根本不需要循环。以下更新声明怎么样?

UPDATE todo SET ordine = ordine - 1

您可能需要在其上添加适当的where子句,例如“WHERE ordine&gt; ordine2”。我不完全明白你要做的是什么,所以我不能给你确切的代码。

另外,你真的不应该在构建你的SQL语句时使用字符串连接,使用?对于每个参数并将它们放入数组中,就像你为ordine3所做的那样,这样你知道它们将被正确转义。