更改mysql中的所有列 - 可拖动框

时间:2013-05-17 12:43:08

标签: php mysql database

我正在开发一个带有可拖动框的小脚本,并在MySQL表中保存它们的位置。但我有一点问题。我不知道如何编写SQL查询来删除和添加新框。假设我们有这样的表:

-----------------------------------
|   id    |  position  |  title   |
-----------------------------------
|   23    |    1       | something|
|   24    |    2       | something|
|   26    |    3       | sometging|
|   32    |    4       | something|
.............etc...................
-----------------------------------

ID是框的ID(框的唯一编号)。位置是布局中每个框的位置,标题是标题(简单):)我不知道如何进行查询以添加/删除框并更改“位置”列中的所有行,在新的或删除的行之后。

假设我要删除ID = 24的框。这是更改后的表格:

-----------------------------------
|   id    |  position  |  title   |
-----------------------------------
|   23    |    1       | something|
|   26    |    2       | sometging|
|   32    |    3       | something|
.............etc...................
-----------------------------------

这是我在表格中添加新框时的表格。 (新盒子有ID = 10)

-----------------------------------
|   id    |  position  |  title   |
-----------------------------------
|   10    |    1       | something|
|   23    |    2       | something|
|   24    |    3       | something|
|   26    |    4       | sometging|
|   32    |    5       | something|
.............etc...................
-----------------------------------

如何编写查询以从表中添加和删除框?

P.S。我的英语非常糟糕,我希望你能理解我,并为我解决问题。

干杯

2 个答案:

答案 0 :(得分:0)

就像这个兄弟 1.插入框(id,position,title)值('99','12','something'); 2.插入框值('99','12','某事'); 3.如果您使用“ID”自动增加    插入框(位置,标题)值('12','某事');    db将分配你的新id。  您最好参考www.w3schools.com

玩得开心

答案 1 :(得分:0)

我了解您希望在插入或删除行时更新位置。我是对的吗?

为此,您可以使用触发器同时执行这两个操作。并非所有版本的MySQL都支持触发器,因此您必须检查MySQL文档。

否则,您将不得不在代码中使用多个查询:至少一个用于在插入/删除之前更新表,一个用于插入/删除。

例如:如果1是新行的位置:

UPDATE my_tbl SET position = position + 1 where position >= 1
INSERT INTO my_tbl (id, position, title) VALUES (10, 1, 'something')

或者:如果2是已删除行的实际位置:

UPDATE my_tbl SET position = position - 1 where position > 2
DELETE FROM my_tbl where id = 24

WHERE子句当然取决于您的规范。

但是:如果您的表在位置字段上有唯一索引,则应采取更多措施来处理您的数据......