1

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

4

1 回答 1

0

你根本不需要循环。那么下面的更新语句呢?

UPDATE todo SET ordine = ordine - 1

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

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

于 2011-05-29T16:42:00.067 回答