Portal > Foren > Datenbanken, Server, Betriebssysteme und sonstige Programmiersprachen > Datenbanken > Nested Sets - Problem mit erstellung der Tabelle
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 17.09.2007, 18:05 Nach oben    #21
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 433
Standard

Ich habe mal ne Frage.
Wenn ich jetzt meine Baum Struktur auslese kommt folgendes raus:
Code:
array(5) {
  [0]=>
  array(2) {
    ["name"]=>
    string(10) "Säugetiere"
    ["level"]=>
    string(1) "0"
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(8) "Primaten"
    ["level"]=>
    string(1) "1"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(9) "Nagetiere"
    ["level"]=>
    string(1) "1"
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(7) "Hamster"
    ["level"]=>
    string(1) "2"
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(5) "Otter"
    ["level"]=>
    string(1) "2"
  }
}
Jetzt möchte ich ein Mehrdimensionales Array daraus erstellen, welches sich nach dem Level richtet.
So dass ich am Ende die Hirarchie erhalte also so:
  • Säugetiere
    • Primaten
    • Nagetiere
      • Otter
      • Hamster
Gibt es da irgend eine Funktion mit der man das machen kann, oder muss ich jetzt alles auslesen und wieder zusammenbasteln?!
__________________
Mein Blog: http://aedo.redio.de RSS: http://aedo.redio.de/feed
Kanedo CMS Projektseite: http://kanedo.redio.de/de/
RSS: http://kanedo.redio.de/rss.php
kampfgnom ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 17.09.2007, 21:53 Nach oben    #22
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 550
Standard

vorausgesetzt, dass die elemente so in der richtigen reihenfolge sind. also alle elemente mit größerem level sind kindelemente des vorhergehenden elements mit geringerem level.
dann kannst du ne einfache schleife bauen, die ungefähr so funktioniert:

PHP-Code:
$data = array(...);
$tree = array();
$parent = array('level' => -1'children' => array());
foreach(
$data as $node){
    
$node['children'] = array();
    if(
$elem['level'] > $parent['level']){
        
$node['parent'] = $parent;
    }else{
        while(
$node['level'] <= $parent['level']){
            
$parent $parent['parent'];
        }
        
$node['parent'] = $parent;
    }
    
$parent['children'][] = $node;

is jetzt nicht getestet, aber so in etwa lässt sich das machen
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.09.2007, 20:20 Nach oben    #23
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 433
Standard

Ok, danke...konnte es noch nicht testen.
Aber ich möchte mal versuchen das in pseudo-code wiederzugeben damit ich weiß ob ich das verstanden habe...
Also:
Das Array data ist mit den Werten aus der DB gefüllt.
Jetzt werden diese Daten mit ner foreach schleife durchlaufen.
Es wird geprüft ob das level größer ist als das seines "Elternelements"
Wenn ja wird es als child eingetragen, wenn nicht
wird das oberste Level eingetragen, solange kleiner seiner "Eltern" ist.

Hab ich das jetzt so ungefähr verstanden?
__________________
Mein Blog: http://aedo.redio.de RSS: http://aedo.redio.de/feed
Kanedo CMS Projektseite: http://kanedo.redio.de/de/
RSS: http://kanedo.redio.de/rss.php
kampfgnom ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 19.09.2007, 21:01 Nach oben    #24
Johannes Müller
 
Benutzerbild von $traight-$hoota
 
Registriert seit: 15.09.2005
Ort: Königreich Flieden
Beiträge: 550
Standard

Zitat:
Zitat von kampfgnom Beitrag anzeigen
Hab ich das jetzt so ungefähr verstanden?
Jop.

Allerdings ist das kein Pseudocode sondern eine Beschreibung des Algorithmus.
__________________
Weißt Bescheid - Scheiß wie weit
$traight-$hoota ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 20.09.2007, 14:26 Nach oben    #25
Gabriel
 
Registriert seit: 27.09.2006
Ort: Radebeul
Beiträge: 433
Standard

Zitat:
Zitat von $traight-$hoota Beitrag anzeigen
Allerdings ist das kein Pseudocode sondern eine Beschreibung des Algorithmus.
Hast recht, aber verstanden hab ich es trotzdem
So jetztgehts wieder an die chemie Hausuafgabe...aber diese Aussage von dir macht mir das Leben leichter
__________________
Mein Blog: http://aedo.redio.de RSS: http://aedo.redio.de/feed
Kanedo CMS Projektseite: http://kanedo.redio.de/de/
RSS: http://kanedo.redio.de/rss.php
kampfgnom ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL: Abfrage aus zweiter Tabelle. Sebastian PHP-Programmierung 6 16.12.2005 00:01
Problem bei erstellung einer tabelle mit function und array noxx PHP-Programmierung 6 22.04.2005 15:47


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45