私はこれに最初に遭遇するのではないと確信しています。解決策を探す正しい言葉がわかりません。 (この質問のために簡略化)は、次のデータベーステーブルを考えてみましょう:
database tables http://www.nth-root.nl/public/images/wolf/cat_attr.png
あなたが写真で見ることができるように、製品カテゴリと異なる属性を保持する属性テーブルを保持しているカテゴリテーブルがあります。たとえば、色(衣類用)、容量(mp3プレーヤー用)など。
3番目の表は、属性をカテゴリにリンクします。
バックエンドには、カテゴリを編集(または追加)するためのフォームの「カテゴリを編集」ページがあります。同じページで、現在の商品カテゴリにリンクされている属性を管理するためのドロップダウンリストのリストを表示したいと思います。
backend http://www.nth-root.nl/public/images/wolf-commerce/edit_category.png
それは削除/ドロップダウンを追加するためにjqueryのを使用しています。
問題は、フォームの$ _POSTデータを使用して、category_attributeテーブルのデータを操作する方法です。
怠惰な解決策は次のようになります(はい、私は過去にこれをやった):
1.次に
2のcategory_attributeに現在のすべての行を削除します。
しかし、これはあまり効率的ではありません。誰かがカテゴリのタイトルだけを変更したとしても、すべての行を削除して再追加します。
は、だから私は右の挿入、更新および削除を行うための方法を探しています:1.
2.アップデート(ドロップダウンが除去されている)$ _POSTに表示されません行を削除します変更された行(ドロップダウンから別のオプションが選択されています)
3.新しい行を挿入します(新しいドロップダウンが追加されました)
私はそれを行う方法や場所を見つけることができません良い例え。これはおそらくいくつかのajaxで行うのは簡単ですが、純粋にPHPのソリューションを探しています。$ _POSTの値をデータベースの値と比較しています。
誰かが最高の(そして最も効率的な)解決策を説明する良い記事を知っているなら、私に感謝します。私は非常に感謝しています。
-edit-
私の質問を明確にするためにいくつかの写真が含まれていましたが、私の評判が低すぎるためスタックオーバーフローが拒否されました。
-edit2- 今私は十分な評判を持っており、画像を追加しました。
事前のおかげで、
ニック
あなたのgoogle fuに欠けているかもしれないボキャブの一部。 http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model – ficuscr
また、category_attributeテーブルは、join/junction/many-to-many /ピボットテーブルhttp:/と呼ばれます。 /en.wikipedia.org/wiki/Junction_table –
あなたはjavascriptで新しいアイテムを挿入しますか? –