2012-01-27 15 views
0

いくつかのカテゴリにいくつかの画像があります。すべてのカテゴリは特定のテーブルにあります(tbl_categoriesとしましょう)。サブカテゴリのレベルは1〜10です。 特定のルートカテゴリ(サブカテゴリ自体でもよい)からすべてのIDのサブカテゴリ(およびそのサブカテゴリなど)を与えるクエリを作成したいとします。sql特定の祖先(ルートカテゴリ)からすべての子と孫を選択します。

例:

Category 1 
    subcategory a 
Category 2 
    subcategory b 
     subsubcategory I 
     subsubcategory II 
    subcategory c 

私は、カテゴリ2を使用している場合は、私は結果としてのサブカテゴリBとC、およびsubsubcategories IアンIIをしたいです。 かなり簡単ですが、私は手がかりを得ていません。

私は書き込みクエリにかなり新たなんだ...

おかげ

+2

は、あなたの実際のテーブル構造を示すことはできますか? – JNK

+1

また、どのRDBMS(MySQL、PostgreSQL、Oracleなど)を使用していますか? –

+0

私は、tbl_im_catにtid_local(tbl_imgの画像のIDを参照)とuid_foreign(tbl_catのカテゴリのIDを参照)を持っています。 「\t \t \t \t \t \t $ sqlを=するmysql_query(:私は成功したカテゴリ2または4にあるどの画像をチェックするためにこれを使用し、私はCMSを使用していますし、それがバックエンドでphpMyAdminのモジュールを持っている... EUH SELECT uid_local FROM 'tbl_mm_cat' uid_foreign IN(2,4)とuid_local = '"。$ item-> getId()。 "'")またはdie(mysql_error()); getId()は単にすべての画像のすべてのIDを取得します (検索モジュールです。ユーザーは特定のカテゴリのみを検索できます) – GertBoers

答えて

0

はこれを試してみてください。

//Parents 
$data = mysql_fetch_assoc(mysql_query("select id,name from categories where parent = 0")); 

//Childrens 
foreach($data as $key => $row) 
{ 
    $data[$key]['childrens'] = mysql_fetch_assoc(mysql_query("select id,name from categories where parent ='".mysql_real_escape_string($row['id'])."'")); 

    //childrens 
    foreach($data[$key]['childrens'] as $_key => $_row) 
    { 
     $data[$key]['childrens'][$_key]['childrens'] = mysql_fetch_assoc(mysql_query("select id,name from categories where parent ='".mysql_real_escape_string($_row['id'])."'")); 
    } 
} 

    //Print Array 
print_r($data); 
+0

thx、それを試してみて、それがうまくいけば教えてください... – GertBoers

関連する問題