Sie benötigen Rekursivität. Erstellen Sie eine Funktion wie folgt aus (vorausgesetzt, Sie sind aktiv Aufzeichnungen verwenden):
function getCategoriesByParentId($category_id) {
$category_data = array();
$category_query = $this->db->query("SELECT * FROM categories WHERE parent_category = '" . (int)$category_id . "'");
foreach ($category_query->result() as $category) {
$category_data[] = array(
'category_id' => $category->category_id,
'category_name' => $category->category_name,
'category_alias' => $category->category_alias,
'parent_category' => $category->parent_category
);
$children = getCategoriesByParentId($category->category_id);
if ($children) {
$category_data = array_merge($children, $category_data);
}
}
return $category_data;
}
und nennen Sie es wie folgt aus:
$all_categories = getCategoriesByParentId(0);
Der Ausgang wird so aussehen:
Array
(
[0] => Array
(
[category_id] => 14
[category_name] => s3
[category_alias] => s3
[parent_category] => 13
)
[1] => Array
(
[category_id] => 13
[category_name] => Samsung
[category_alias] => samsung
[parent_category] => 12
)
[2] => Array
(
[category_id] => 12
[category_name] => Phone
[category_alias] => phone
[parent_category] => 0
)
)
Für weitere Informationen Dies wurde aus OpenCart 1.5.4
, Klasse ModelCatalogCategory
unter catalog\model\catalog\category.php
entnommen.
B E A Unvollständige Codierung @ Maschinen-Addict –