Visa ett inlägg
Oläst 2013-07-16, 23:46 #3
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
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.
Anaxa är inte uppkopplad   Svara med citatSvara med citat