Php mysql中的更新表-删除旧表、插入新表、更新更新表

Php mysql中的更新表-删除旧表、插入新表、更新更新表,php,html,mysql,Php,Html,Mysql,我有一个mysql表显示为html表。用户可以更新、插入和删除行。单击save按钮后,我想更新我的mysql表 我当前的方法是删除所有行,并在保存时插入所有新行。然而,当我的insert函数出现错误时,我遇到了问题,我已经删除了所有内容 我觉得这个方法很草率,会导致不必要的删除。它可能只为了更新一个单元格而删除和插入50行 在mysql中更新表的正确方法是什么 编辑: 我目前的工作解决方案是 将已删除的列添加到表中,默认值为0 为行中的每个单元格(ID除外)在表上创建唯一索引 保存表格时,更新

我有一个mysql表显示为html表。用户可以更新、插入和删除行。单击save按钮后,我想更新我的mysql表

我当前的方法是删除所有行,并在保存时插入所有新行。然而,当我的insert函数出现错误时,我遇到了问题,我已经删除了所有内容

我觉得这个方法很草率,会导致不必要的删除。它可能只为了更新一个单元格而删除和插入50行

在mysql中更新表的正确方法是什么

编辑: 我目前的工作解决方案是

  • 将已删除的列添加到表中,默认值为0

  • 为行中的每个单元格(ID除外)在表上创建唯一索引

  • 保存表格时,更新每一行,将“已删除”设置为1

  • 对于表中的每一行,插入mysql,在重复集上删除=0

  • 仅显示删除=0的行

您可以选择删除deleted=1的行来清理它,但我喜欢将其保留为备份

此解决方案会出现两个问题:

  • 不允许有两个相同的行。如果发现重复,mysql将只替换deleted=0

  • 如果行中的单元格发生更改,将创建新行,而不是简单地更新旧行。这是可以修复的,但我几乎不介意拥有“撤消”编辑的能力


    • 我有两个办法

      一,

      如果每行都有一个id,则可以直接处理更新。只要用户->数据库。如果无法应用更改,则不会删除任何内容

      1.|简| 20

      2.|菲利普| 30

      3.|卢卡斯| 50

      生成类似更新“2”的查询,将其年龄从30岁替换为20岁,然后刷新窗口。将处理更新,无需删除所有内容。刷新后,新的html表将写入所有更改

      二,

      继续使用您的方法,但确保在pararel表中可以处理更新

      • 如果可以,则在用户接受后向用户显示表格 paralel表的paralel内容将插入到已使用的表中

      • 如果不能,写错误,什么也不做


        • 本周我也遇到了同样的问题。 我的决定是将列表数据表保存在会话变量中。稍后,在mysql上插入此变量列表。若此插入脚本得到异常,我将回滚事务以撤消操作。但是,没有例外,所有行都被删除,会话变量被清除。
          我也需要改进这个过程

          查看w3schools的“更新”

          你需要按照以下思路做一些事情:

          Update (tablename)
          Set (columnname)='newvalue'
          Where id='idYouWantToUpdate'
          

          更新是你想要做的。不要删除所有内容并再次插入所有内容。

          所以不是一个“请给我编码”网站。请把你尝试过的,有效的,无效的贴出来。我理解。我在寻找一个理论上的答案,而不是代码,因为我假设这个问题很常见。好吧,很抱歉反应过度。我明白了,谢谢你,弗雷德。如果你能给我名声,我就不会生气了……哈哈;StepoNot所有行将仅为更新。用户可以在HTML中插入或删除行,以及更新单元格。