2011-01-13 9 views
3

私はtag1、tag2、tag3のようなDBにタグを投稿しています。どのように私はそれらを分割について行くので、私はリンクにそれらをpharseし、これらのタグを使用する他の提出のためにDBを照会することができますか?PHPとDBのタグ

+0

あなたはMySQLデータベースを使用していますか?分割したい元の入力は何ですか? – amosrivera

+0

はい、MySQL。今すぐデータは、tag1、tag2、tag3の形式のテキストボックスを介して提出されます。 – NikkiW

答えて

4

おそらくタグを別のテーブルに保持し、レコードのIDを含むフィールドを使用してレコードにリンクする必要があります。

データベース内の1対多リレーションシップは、別々のテーブルを呼び出します。カンマ区切りの値は、データベースを非常に魅力的なものにします。

1

私が理解することは非常によく分からないけど、あなたのタグの文字列を解析したい場合には、使用することができます。

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

あなたは通常、内部の3タグの配列を取得します。

しかし、別のテーブルにタグを1つずつ挿入して、その上にmakeの参照を入れる必要があります。そして、あなたは、これが遅い付与where tag LIKE '%,tag2,%'のために照会することにより、TAG2を取得することができますし、1を介してこれを行う方法、より高度な方法があるので

+1

軽度の不気味ですが、トリム後にトリムする必要があります。コンマの前/後にはスペースがいくつあってもかまいません。私は 'array_map( 'trim'、explode( '、'、strtolower($ str)))' – kijin

+0

を使っています。 –

0

Aは非常にシンプルですが、非常hackeyアプローチは、あなたの最初とタグとそう,tag1,tag2,tag3,tag4,末尾のカンマを入力することであろう多くの関係。タグをリンクにしたいのであれば、1つのテーブルにはポストがあり、1つのテーブルにはタグがある構造を調べます。 http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.htmlには、いくつかのテーブル構造とこれがどのように機能するかについての説明があります。