繁体   English   中英

CheckBox和数据库更新

[英]CheckBox & Database Update

我有一个下面的表格,允许用户选择不同的领子类型。 每个复选框都有一个领子ID,将在提交表单时提交。

领型

假设用户选择了前三个项圈。 它看起来像这样。

领型

然后我做的是使用insert语句将这三个项圈添加到我的项圈表。 之后如果用户想要,他可以取消选中项圈类型或添加新项目。

假设用户取消选中第二种类型,如下所示。

领型

现在必须从表中删除引用第二个项圈类型的特定行。 下图显示了表格结构。

在此输入图像描述

现在我的问题是当提交表单时,如果用户进行了任何更改(选中新复选框或未选中任何更改)我如何插入或删除行? 我是否必须为每个复选框编写SELECT语句,并查看该项ID是否存在?

帮助我解决逻辑,因为我能够根据给定的逻辑自己构建代码。

谢谢

我是否必须为每个复选框编写SELECT语句,并查看该项ID是否存在?

数据库可以告诉您该ID是否存在,因此数据库也是如此。

但是,您需要运行两个查询,一个用于删除,一个用于插入。

我想如果您可以为特定用户保存id或product_id,而不是删除其早期条目,并使用该ID创建该用户的新行。 或者使用id更新该行。

我认为有两种解决方案:

  1. 您必须从表中选择所有ID并验证是否选中了复选框:

     $array = array(); $sql = mysql_query("SELECT collor_id FROM my_table WHERE product_id='x'"); while($row = mysql_fetch_array($sql)) { array_push($array, $row['collor_id']); } if(count($_POST['my_collors']) > 0) { foreach($_POST['my_collors'] as $value) { if(!in_array($value, $array)) { // insert it into db // unset the array value for this collor id } else { // unset the array value for this collor id } } } // foreach remained array value delete them from the db 
  2. 您可以从表中删除所选产品的条目,然后插入新值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM