Okej, men nu vill jag lista upp alla i ett "träd". Likt detta:
HTML-kod:
|__ Parent
|__ CHILD1
|__ CHILD2
|__ GRANDCHILD1
|__ GRANDCHILD2
|__ Parent1
|__ CHILD4
|__ CHILD5
|__ GRANDCHILD8
|__ GRANDCHILD23
Men det fungerar inte.
Här är mitt försök:
PHP-kod:
$main_cats = $database->query("SELECT v.*, (SELECT name FROM categories c WHERE c.id= v.parent) AS ParentName FROM categories v ORDER BY v.name ASC, ParentName ASC") or die($database->error);
$categories = array();
while($r = $main_cats->fetch_array(MYSQLI_ASSOC)) {
$categories[] = $r;
}
$tree = array('NULL' => array('children' => array()));
foreach($categories as $item) {
if(isset($tree[$item['id']])){
$tree[$item['id']] = array_merge($tree[$item['id']],$item);
} else {
$tree[$item['id']] = $item;
}
$parentid = is_null($item['parent']) ? 'NULL' : $item['parent'];
if(!isset($tree[$parentid]))
$tree[$parentid] = array('children' => array());
$tree[$parentid]['children'][] = &$tree[$item['id']];
}
$categories = $tree['NULL']['children'];
unset($tree);
Nu hamnar underkategorierna över deras förälder. Det ska det ju inte göra.