将$ _POST数组与数据库进行比较

时间:2012-11-05 21:12:53

标签: php database post

好的,我很确定我不是第一个遇到这种情况的人,我只是不知道正确的词来搜索解决方案。 请考虑以下数据库表(针对此问题进行简化):

database tables http://www.nth-root.nl/public/images/wolf/cat_attr.png

如图所示,有一个包含产品类别的类别表和一个包含不同属性的属性表。例如:颜色(用于服装),容量(用于mp3播放器)等。

第三个表位于图片的中心,将属性链接到类别。

现在在后端我有一个“编辑类别”页面,其中包含用于编辑(或添加)类别的表单。在同一页面上,我想显示一个下拉列表列表,以便管理哪些属性链接到当前产品类别。

backend 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值与数据库中的值进行比较。

如果有人知道一篇解释最佳(也是最有效)解决方案的好文章,请告诉我,我将非常感激。

CNC中
我已经包含了一些图片以澄清我的问题,但是堆栈溢出拒绝包含它们因为我的声誉太低,所以我希望我的问题很清楚,没有图像。

-edit2- 现在我有足够的声誉,我已经添加了图片。

提前致谢,

尼克

1 个答案:

答案 0 :(得分:2)

插入和更新
您可以插入带有ID记录的隐藏输入 新手将重置此ID,因此您可以执行插入操作 已填写的ID会进行更新。如果您只想执行更新,则确实更改了项目,您可以创建值为“0”的隐藏输入“UPDATED”。通过javascript,您可以检查组合是否已更改,以便输入标记为“1”。

<强>排除:
同样,您可以执行排除,创建隐藏的输入评分记录,当用户单击要删除时应删除这些记录。

不知道这是否适合您,或者您是否期望更实用的解决方案。