我有一个下面的表格,允许用户选择不同的领子类型。每个复选框都有一个领子ID,将在提交表单时提交。
假设用户选择了前三个项圈。它看起来像这样。
然后我做的是使用insert语句将这三个项圈添加到我的项圈表中。之后如果用户想要,他可以取消选中项圈类型或添加新的。
假设用户取消选中第二种类型,如下所示。
现在必须从表中删除引用第二个项圈类型的特定行。下图显示了表格结构。
现在我的问题是当提交表单时,如果用户进行了任何更改(选中了新复选框或未选中任何更改)我如何插入或删除行?我是否必须为每个复选框编写SELECT语句,并查看该项ID是否存在?
帮助我解决逻辑,因为我能够根据给定的逻辑自己构建代码。
由于
答案 0 :(得分:2)
我是否必须为每个复选框编写SELECT语句,看看是否存在该衣领ID?
数据库可以告诉您该ID是否存在,以便数据库。
但是,您需要运行两个查询,一个用于删除,一个用于插入。
答案 1 :(得分:0)
我想如果您可以为特定用户保存id或product_id,而不是删除其早期条目,并使用该ID创建该用户的新行。 或者使用id更新该行。
答案 2 :(得分:0)
我认为有两种解决方案:
您必须从表中选择所有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
您可以从表中删除所选产品的条目,然后插入新值