【问题标题】:php checkbox update, insert, delete mysql recordsphp复选框更新,插入,删除mysql记录
【发布时间】:2011-01-08 21:32:51
【问题描述】:

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

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

checkbox数组中分配的id需要添加到数据库中。

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

有没有人用过任何代码来做到这一点?

编辑:

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

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 ) 

【问题讨论】:

  • 什么是表结构?您要更新的值是什么?

标签: php mysql arrays checkbox


【解决方案1】:

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

  1. 删除 DB 上的所有值。
  2. 循环通过 POST 或 GET 传递的 id 并将它们插入 DB。

【讨论】:

  • @Dan - 等一下,如果在删除数据库上的所有值后数据库连接失败或其他异常发生怎么办?
  • @ajrreeal 可以将其全部包含在事务中。
【解决方案2】:
  1. 对每个通过的 id 进行替换。 Replace 的行为类似于 insert i 该条目不存在,如果存在则类似于 update。因为我不知道你的表结构,所以我不能给你更多细节
  2. 删除所有 id 不在您的数组中的项目。你可以选择那些带有“in”的:

    ...其中 id_product 不在 (1,3,5,8) 中并且......

    您可以通过使用轻松生成此文件

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

关于更换:

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

关于在:

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

编辑:我刚刚意识到有些人可能会反对我对 REPLACE 的定义。 REPLACE 实际所做的是删除已存在的行,然后执行 INSERT。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-27
    • 2020-07-19
    • 2014-08-27
    • 1970-01-01
    • 2015-02-13
    • 2014-10-31
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多