好的,我很确定我不是第一个遇到这种情况的人,我只是不知道寻找解决方案的正确词。考虑以下数据库表(针对此问题进行了简化):
数据库表 http://www.nth-root.nl/public/images/wolf/cat_attr.png
正如您在图片中看到的,有一个包含产品类别的类别表和一个包含不同属性的属性表。例如:颜色(用于服装)、容量(用于 mp3 播放器)等。
第三个表格,位于图片的中心,将属性链接到类别。
现在在后端我有一个“编辑类别”页面,其中包含一个用于编辑(或添加)类别的表单。在同一页面上,我想显示一个下拉列表列表,以管理哪些属性链接到当前产品类别。
后端 http://www.nth-root.nl/public/images/wolf-commerce/edit_category.png
它使用 jquery 添加/删除下拉菜单。
问题是:如何使用表单的 $_POST 数据来操作 category_attribute 表中的数据。
懒惰的解决方案是(是的,我过去曾这样做过):
1. 删除给定类别的 category_attribute 中的所有当前行
2. 然后将所有选定的属性插入到 category_attribute
但这不是很有效,即使有人只更改了类别的标题,它也会删除并重新添加所有行。
所以我正在寻找一种方法来进行正确的插入、更新和删除:
1. 删除 $_POST 中没有出现的行(下拉列表已被删除)
2. 更新已更改的行(另一个选项来自已选择下拉菜单)
3. 插入新行(已添加新下拉菜单)
我只是不知道该怎么做或在哪里可以找到一个很好的例子。使用一些 ajax 可能很容易,但我正在寻找一个纯 php 的解决方案,将 $_POST 值与数据库中的值进行比较。
如果有人知道一篇解释最佳(和最有效)解决方案的好文章,请告诉我,我将不胜感激。
-edit-
我已经包含了一些图片来澄清我的问题,但是由于我的声誉太低,堆栈溢出拒绝包含它们,所以我希望我的问题在没有图片的情况下足够清楚。
-edit2- 现在我有足够的声誉,我已经添加了图像。
提前致谢,
网卡