0

タグシステムを実装しようとしているフォームがあります。

それはただです:

<input type="text"/> 

コンマで区切られた値。

e.g. "John,Mary,Ben,Steven,George"

(リストは、ユーザーが望む限り長くすることができます。)

そのリストを取得して、データベースに配列として挿入したいと思います (ユーザーは必要に応じて後でタグを追加できます)。配列である必要はないと思います。それが最もうまくいくようです。

したがって、私の質問は、そのリストを取得して配列に変換し、配列をエコーし​​ (カンマで区切られた値)、後で値を追加し、配列を他のユーザーが検索できるようにする方法です。この質問が初歩的なものに思えることはわかっていますが、どれだけ読んでも、すべてがどのように機能するかについて頭を悩ませているようには見えません. それを理解したと思ったら、何かがうまくいかない。簡単な例をいただければ幸いです。ありがとう!

これが私がこれまでに得たものです:

$DBCONNECT
$artisttags = $info['artisttags'];
$full_name = $info['full_name'];
$tel = $info['tel'];
$mainint = $info['maininst'];
if(isset($_POST['submit'])) {
  $tags = $_POST['tags'];
  if($artisttags == NULL) {
    $artisttagsarray = array($full_name, $tel, $maininst);
    array_push($artisttagsarray,$tags);
    mysql_query("UPDATE users SET artisttags='$artisttagsarray' WHERE id='$id'");
    print_r($artisttagsarray); //to see if I did it right
    die();
  } else {
    array_push($artisttags,$tags);  
    mysql_query("UPDATE users SET artisttags='$artisttags' WHERE id='$id'");
    echo $tags;
    echo " <br/>";
    echo $artisttags;
    die();
    }
}
4

1 に答える 1

0

新しいテーブルを作成し、「タグ」と呼びましょう:

tags
- userid
- artisttag

各ユーザーは、このテーブルに複数の行を持つことができます (各行に 1 つの異なるタグが付いています)。クエリを実行するときは、JOIN操作を使用して 2 つのテーブルを結合します。例えば:

SELECT username, artisttag
FROM users, tags
WHERE users.userid = tags.userid
AND   users.userid = 4711

これにより、 id を持つユーザーに関するすべての情報が得られます4711

リレーショナル データベース システムは、この種の作業用に構築されているため、スペースとパフォーマンスが無駄になりません。実際、タグを検索できるようにしたい場合は、これが最適な方法です。

于 2012-05-31T17:32:47.990 に答える