【发布时间】:2012-06-05 23:29:28
【问题描述】:
我有一个表单,我正在尝试实现标签系统。
这只是一个:
<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();
}
}
【问题讨论】:
-
你可以:将它作为字符串保存到数据库中。当用户在哪里添加更多标签时,当您检索数据时,您使用explode用逗号分隔它们并将它们存储在一个数组中,然后您将另一个标签添加为数组,然后将其保存回数据库时,您会内爆它将它们组合起来并用逗号分隔它们。
-
太棒了!我会尝试一下。我觉得这听起来不错。
-
不要那样做。如果要处理数据,请确保它已标准化。序列化数组并将其保存在一个字段中甚至会破坏第一范式!
标签: php mysql arrays search tags