2
我需要創建一些函數,返回一個類別和子類別的數組,其中子類別可以有多個父級。我試圖解決這個問題可能6天,但互聯網上沒有任何東西。如何創建一個分類樹,其中子分類可以有多個父母?
這是我創建的一些代碼,但它不起作用。
private function getAllSubs($category, $index, $parent = null)
{
$subs = $this->database->table('eshop_product_categoryo')
->where('parent', $category->id);
$haveSub = false;
foreach($subs as $sub)
{
$haveSub = true;
break;
}
if($haveSub)
{
$mainCategory = $this->database->table('eshop_product_categoryo')
->where('category', $category->id);
$isMainCategory = true;
foreach($mainCategory as $main)
{
$isMainCategory = false;
break;
}
$ppp = 0;
if(!$isMainCategory)
{
$ppp = $parent;
}
$this->someArray[] = array
(
'name' => $category->name,
'parent' => $ppp,
'index' => $index,
'id' => $category->id
);
foreach($subs as $sub)
{
$ctgry = $this->database->table('eshop_product_category')
->where('id', $sub->category)
->fetch();
$this->getAllSubs($ctgry, ($index+1), $sub->parent);
}
}
}
所以你可以開始你的數據庫架構的信息?目前您似乎只訪問一個表格,這在嘗試描述多對多關係時會很麻煩。您的問題可能與您的代碼無關,與您的數據模型無關。 –
創建表類別( id int unsigned primary key auto_increment, name varchar(255) ); create table subs( id int unsigned primary key auto_increment, category int unsigned, father int unsigned // category id ); –
@Zdenek,^請將表格定義添加到您的問題中 - 您可以在問題中將其添加格式良好,而在評論中很難使其具有可讀性。另外,如果某些「不起作用」,最好描述你的期望和你得到的東西,否則人們將不得不嘗試以什麼方式工作。 – halfer