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

每个用户在此表中可能有多行(每行有一个不同的标签)。查询时,您使用JOIN操作来组合两个表。例如:

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

这将为您提供有关 id 用户的所有信息4711

关系数据库系统专为此类工作而构建,因此不会浪费空间和性能。事实上,如果您希望能够搜索标签,这是执行此操作的最佳方式。

于 2012-05-31T17:32:47.990 回答