[Tep-j-general] 子のカテゴリの取得方法

Back to archive index

大洞輝世造 pirate_ship****@lived*****
2008年 5月 28日 (水) 07:04:08 JST


 初めてメールします。

現在、バージョンosCommerce 2.2
MS1j-R8で下記のようなことをやろうとしているのですがうまくいかないためお知恵を借りたくメールしました。

やりたいこと

カテゴリの親をクリックするとそこ子がすべて一覧表示される

例
カテゴリのハードウェアをクリックするとハードウェアの子、CD-ROMドライブ、キーボード、グラフィックカード、スピーカー、
プリンター、マウス、メモリ、モニターのすべての商品が一覧表示される

以上です。

製作工程

例
ハードウェアをクリックした場合

工程 1. ハードウェアをクリックしたらデーターベースにアクセスして、ハードウェアのカテゴリIDを取得。
工程 2. 取得したハードウェアのカテゴリIDからデーターベースにアクセスしてハードウェアの子のカテゴリIDを取得
工程 3. 取得した子のカテゴリIDからデーターベースにアクセスして子の商品IDを取得
工程 4. 取得した子の商品IDからデーターベースにアクセスして子の商品名、商品画像、価格を取得
工程 5. 取得した子の商品名、商品画像、価格をテーブルにて一覧表示

と計画を立て、実行して

とりあえず、工程 4まではもっていけたのですが、ひとつ問題が発生しまして、それをどうクリアすれば良いのかを解決に困っています。

というのも、工程
2で子のカテゴリーIDの取得がなぜか、親の最初に登録された子一つのカテゴリIDしか取得できないのです。(ハードウェアをクリックするとマトロックス
G200 MMSのカテゴリIDのみ、ソフトウェアをクリックするとSWAT
3のカテゴリIDのみ、DVDをクリックするとリプレイスメント・キラーのカテゴリIDのみしか取得できないのです。)

以下に工程1と工程2まで作成した構文を記載します。

ハードウェアの場合

工程1 クリックしたカテゴリID、子カテゴリIDを取得
   $first_categories_query = tep_db_query("select categories_id, parent_id
from " . TABLE_CATEGORIES . " where categories_id =  '". (int)$cPath . "'");

   if (tep_not_null($first_categories_query)){
           $first_categories_id =
tep_db_fetch_array($first_categories_query);
       }

       // $first_categories_id[categories_id]= 1
       // $first_categories_id[ parent_id ]= 0

工程2 クリックしたカテゴリIDから子カテゴリIDを取得 *問題の箇所
if($first_categories_id[parent_id]==0){
 $parent_id[i] = $first_categories_id[categories_id];
}

$parent_categories_query= tep_db_query("select categories_id from " .
TABLE_CATEGORIES . " where parent_id=' $parent_id[i] '");

   if (tep_not_null($parent_categories_query)){
                     $parent_categories_id=
tep_db_fetch_array($parent_categories_query);
       }

       // $parent_categories_id[ categories_id ]= 4

データーベース上では parent_id = 1 に相当する categories_id が 4 だけではないのですが 4 だけしか取得できないのです。

$parent_categories_query の SQL構文に何か問題があると思うのですが、何をどうしたら良いのか分りません。

ちなみに

$parent_categories_query= tep_db_query("select * from " . TABLE_CATEGORIES .
" where parent_id=' $parent_id[i] '");

しても categories_id が 4 の行文しか得られませんでした。

また、

$parent_categories_query= tep_db_query("select categories_id from " .
TABLE_CATEGORIES . " where parent_id !=' $parent_id[i] '");

       // $parent_categories_id[ categories_id ]= 1でした。

参考までに PHP Version 4.4.2、 MySQL version 4.0.26 のレンタルサーバーを使用しています。

どうか、お知恵をお貸し下さい。
もし、本家のモジュールで同じ様なモジュールを知っている方がございましたら、教えてください。

kiyoteru
-------------- next part --------------
HTMLの添付ファイルを保管しました...
Télécharger 


Tep-j-general メーリングリストの案内
Back to archive index