2011-01-13 30 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有幾個表結構和解釋如何工作。