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

时间:2011-01-08 12:19:08

标签: php mysql arrays checkbox

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

复选框数组中指定的id已经在数据库中,不需要发生任何事情,或者可以使用相同的值进行更新。

复选框数组中指定的id需要添加到数据库中。

id IS未在复选框数组中分配,因此必须从DB中删除。

有没有人得到他们合作过的任何代码呢?

编辑:

表格很简单,有两件事要更新:

id_text和id_product

来自$ _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 ) 

2 个答案:

答案 0 :(得分:0)

没错,没有任何代码或数据库squema很难帮助,但如果我理解正确你可以:

  1. 删除DB上的所有值。
  2. 循环传递POST或GET中传递的ID并将其插入数据库。

答案 1 :(得分:0)

  1. 替换每个传递的id。替换行为像插入i条目不存在,如果存在则更新。我不能给你更多细节因为我不知道你的桌子结构
  2. 删除ID不在数组中的所有项目。你可以选择那些“in”:

    ... WHERE id_product NOT IN(1,3,5,8)AND ......

    您可以使用

    轻松生成此内容

    $ idCondition ='id_product NOT IN('。implode(',',$ yourArrayName)。')';

  3. 关于REPLACE:

    http://dev.mysql.com/doc/refman/5.1/de/replace.html

    关于IN:

    http://www.webdevelopersnotes.com/tutorials/sql/tutorial_mysql_in_and_between.php3

    编辑:我刚才意识到有些人可能会对我对REPLACE的定义提出异议。 REPLACE实际上做的是删除该行,如果它已经存在,然后执行INSERT。