私は MySQL と PHP にかなり慣れていませんが、ゆっくりとコツをつかんでいます。
私はプロフィールページのあるサイトに取り組んでいます。データベースにユーザー テーブルがあり、プロファイル テーブルも作成する予定です。
私の「問題」を説明する前に、解決策のコーディングを実際に開始したわけではないと言いたいと思います。特に複雑になる場合は、作業を開始する前に計画を立てるのが好きです。したがって、コードのスニペットを実際に表示することはできません。
私が作成したいのは、ユーザー プロファイルのタグ付けシステムです。すなわち。プロファイル所有者が既存のリストからキーワードを選択し、それらを自分のプロファイル ページに関連付けます。
十分に熟考し、収集したリレーショナル データベースを読んだ後、次の 2 つの追加テーブルを作成することから始めます。
1. tags (tag_id, tag_name)
2. tag_rel (tag_id, user_id)
各プロファイルと、ユーザーが割り当てたさまざまなタグとの関係を別々の行に作成します。
(Tag1, UserA)
(Tag2, UserA)
(Tag1, UserB)
等
次に、プロファイルを検索するときに、特定の tag_id を持つすべての user_id を選択するだけです。簡単です。
私の問題は、リストを挿入または変更するときの PHP および MYSQL クエリ コードです。
私は本質的に、ユーザーが既存のタグのチェックリストまたはドロップダウン選択リスト (または同等のもの) から選択し、選択をチェックまたはチェック解除し、送信してデータベースに入力できるようにしたいと考えています。
foreach()
選択したタグの最初のエントリは、関数と単純な INSERT クエリを使用して達成するのに十分簡単であり、一度に 1 つの値のフォームから配列を入力できると想像できます。
しかし、ユーザーがタグを変更するために戻った場合、クエリにいくつかのタグを保持し、他のタグを削除し、新しいタグを挿入するように指示するにはどうすればよいでしょうか? このようなことを行うための最良の方法は何ですか?
アイデア: ユーザーが tag_rel に持っている既存の行をすべて削除し、新しい配列を挿入する必要がありますか?