php复选框更新、插入、删除mysql记录

php复选框更新、插入、删除mysql记录,php,mysql,arrays,checkbox,Php,Mysql,Arrays,Checkbox,我已经为此搜索了很多次,但似乎没有任何东西出现,这是奇怪的,因为我认为这将是一个非常容易实现的东西。基本上,我有一个用户选择的项目列表,我想做的是根据选中的复选框更新数据库中的值,基本上在以下场景中: 在复选框数组中指定的id已在数据库中,无需执行任何操作,或者可以使用相同的值进行更新 需要将在复选框数组中分配的id添加到数据库中 该id未在复选框数组中分配,因此必须从数据库中删除 有没有人用过这样的代码 编辑: 该表很简单,更新了两件事: id_文本和id_产品 来自$\u POST的数组是:

我已经为此搜索了很多次,但似乎没有任何东西出现,这是奇怪的,因为我认为这将是一个非常容易实现的东西。基本上,我有一个用户选择的项目列表,我想做的是根据选中的复选框更新数据库中的值,基本上在以下场景中:

在复选框数组中指定的id已在数据库中,无需执行任何操作,或者可以使用相同的值进行更新

需要将在复选框数组中分配的id添加到数据库中

该id未在复选框数组中分配,因此必须从数据库中删除

有没有人用过这样的代码

编辑: 该表很简单,更新了两件事:

id_文本和id_产品

来自$\u POST的数组是:

Array ( [text] => 
         Array ( [0] => 8 [1] => 1 [2] => 2 ) // the values that need to be inserted, updated, or deleted if they don't exist here.
         [textValue] => ALL OF THEM
         [id] => 33 // the 'id_product value'
         [update] => update ) 

诚然,没有任何代码或数据库,squema很难提供帮助,但如果我理解正确,您可以:

  • 删除数据库上的所有值
  • 循环通过POST或GET中传递的ID,并将它们插入数据库
  • 对传递的每个id执行替换。Replace的行为类似于insert i,如果条目不存在,则类似于update。我不能给你更多的细节,因为我不知道你的表格结构
  • 删除所有id不在数组中的项。您可以选择带有“in”的选项:

    …其中id_产品不在(1,3,5,8)和

    您可以使用

    $idCondition='id_产品不在('。内爆(',',$yourArrayName)。')

  • 关于替换:

    关于:


    编辑:我刚刚意识到有些人可能会对我的“替换”定义提出异议。REPLACE实际做的是删除已经存在的行,然后进行插入。

    什么是表结构?您想更新哪些值?@Dan-等一下,如果在删除数据库上的所有值后数据库连接失败或发生其他异常,该怎么办?@ajrreeal可以将其全部打包到事务中。