2011-01-13 64 views
3

我正在将标签提交到类似tag1,tag2,tag3的数据库中。我怎么去分裂他们,所以我可以把他们分成链接,然后查询数据库的其他提交使用这些标签?PHP和DB中的标签

+0

你使用MySQL数据库吗?什么是你想分裂的原始输入? – amosrivera 2011-01-13 19:58:58

+0

是的,MySQL。现在通过文本框以tag1,tag2,tag3格式提交数据 – NikkiW 2011-01-13 22:21:37

回答

4

您应该将标签保存在单独的表中,并使用包含记录ID的字段将它们链接到记录。

数据库中的大多数一对多关系调用单独的表。逗号分隔的值违背了数据库如此之好的原因。

1

我不是很肯定理解,但如果你要分析你的标签字符串可以使用:

<?php 
    str=" tag1, tag2, tag3 "; 
    $array = explode(', ', trim(str)); 
?> 

通常你将会得到一个与3标签内阵列。

但是,您应该在另一个表中逐个插入标签,以便对它们进行引用。

0

一个很简单但很hackey方法是输入与开始您的标签和尾随逗号所以,tag1,tag2,tag3,tag4,因为这样你可以授予,这是缓慢的通过查询where tag LIKE '%,tag2,%'得到TAG2和有办法更先进的方式通过1做到这一点:很多关系。如果你想让标签进入链接,我会查看一个结构,其中一个表有帖子,一个表有标签。 http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html有几个表结构和解释如何工作。