2009-07-17 2 views
0

term_dataテーブルのtidの型を知る必要があります。たとえば、このtidがed-classifiedsモジュールの一種であるかどうかを知りたいですか?Drupal:tid(term id)の種類を知るには?

これは、ここでは混乱のビットがあるかもしれません、今それが100%ではありません事前

答えて

7

で正しい

# get all the parent categories for the ed classifieds 
SELECT th.tid, td.name, n.type 
FROM term_hierarchy th 
LEFT JOIN term_data td ON th.tid = td.tid 
LEFT JOIN term_node tn ON tn.tid = td.tid 
LEFT JOIN node n ON n.nid = tn.nid 
WHERE th.parent = '0' 
#AND n.type = 'ed_classified' 
GROUP BY th.tid 

おかげで私のクエリです。用語そのものはフリータグやカテゴリのようなフリーフローティングエンティティです。それらを 'ボキャブラリ'にグループ化することができます。ボキャブラリIDはterm_dataテーブルの 'vid'カラムに格納されます。

このクエリでプルアップしている「ノードタイプ」は、タクソノミー用語でタグ付けされたノードのコンテンツタイプです。そのタイプは用語自体に固有のものではありません。与えられた用語を使用して、同時に多くの異なるタイプのコンテンツにタグを付けることができます。しかし、用語は単一のの語彙にしか属しません。どのイートン(いつものように、正しいと)前記に加えて、

+0

説明のためにイートンさんありがとうございました:)だから、あなたは「tid」には単に型がないと言っていますか?私は正しいですか?とにかく、これを試してみました。それは、分類された広告の親カテゴリを引き離した。 $ cats = taxonomy_get_tree(_ed_classified_get_vid()、$ tid、-1,1); – marknt15

+0

と思います。あなたが話しているような2つのことがあります - 用語が属している語彙、与えられた用語が用語の階層ツリーの一部である場合の「親用語」、および所与のノードが接続されている用語。 taxonomy_get_tree()は、ボキャブラリ内のすべての用語の階層をプルアップします。 taxonomy_get_parents()は、指定された用語の親用語を取得します。 taxonomy_get_node_terms()は、ノードがタグ付けされたタクソノミの用語を取得します。 http://api.drupal.orgをチェックして、「taxonomy_get_」を検索してください。それはあなたに役立ついくつかのユーティリティ関数を引き上げるはずです。 – Eaton

3

、そのterm_nodeがNID + VIDによってだけでなくNIDてノードに結合されている注:用語はDrupalの6

ため改訂依存性であります最後の結合は、n.nid = tn.nidの代わりにn.vid = tn.vidにする必要があります。

関連する問題