hamada
bungu****@leo*****
2006年 1月 6日 (金) 09:50:33 JST
こんにちわ。 On Thu, 5 Jan 2006 20:53:13 +0900 Masato Kobayashi <ksoun****@rd*****> wrote: > mklist.phpのカテゴリー欄に最上カテゴリー名を表示させたいと思う > のですが、どのようにカテゴリー名を拾ったらよいのか分からず、悩 > んでおります。 mklist.phpとはあんまり関係ない気もしますが、名前出てるんで(^^;) とりあえず、categoriesテーブルにparent_idとして親カテゴリのIDが入ってま すんでそれを使って 1. 当該products_idに対応するcategories_id(A)を得る 2. categoriesテーブルから(A)に相当するparent_id(B)を得る 3. categoriesテーブルから(B)に相当するparent_id(C)を得る 以上を再帰的に繰り返し、parent_idが0になったらそれが最上位のカテゴリIDっ てことになると思います。 ただ、さらっと書いてますが「当該products_idに対応する(A)」がユニークとは 限りません(osCでは同一商品を複数カテゴリに登録することが可能)ので、重 複登録商品がある場合はどう処理するか工夫がいるかも。 勿論tep_get_product_path()で得たcPathを「_」で分割するとかして最上位カテ ゴリIDを得ても構いませんが、重複登録商品があると一筋縄で行かないのはこち らも同様(cPath自体が得られない) とにかくなんとかして最上位のカテゴリIDが解れば、categories_descriptionテー ブルから当該カテゴリID&使用言語のカテゴリ名を引いてくれば宜しいかと。 たしか以前、title_meta.phpのときだったかにtep_get_topcategory()みたいな 関数を作った気がするんですが、いまぱっとソースが見当たりませんので大まか な動作概念のみで御容赦を。 はまだ