0

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

领型

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

领型

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

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

领型

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

在此处输入图像描述

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

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

谢谢

4

3 回答 3

2

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

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

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

于 2012-10-22T06:16:29.680 回答
0

我认为您是否可以保存特定用户的 id 或 product_id,而不是删除其先前的条目并使用该 ID 创建该用户的新行。或者使用 id 更新该行。

于 2012-10-22T06:21:58.363 回答
0

我认为有两种解决方案:

  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. 您可以从表中删除*所选产品的条目,然后插入新值

于 2012-10-22T06:25:11.983 回答