Einzelnen Beitrag anzeigen
  #3  
Alt 25.06.2006, 11:07:32
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 36
Beiträge: 1.476
AW: Stammbaum mit Sql und Php coden. aber wie?

doch, nur deinen thread irgendwie übersehen ;)

also ich würde ds so lösen:
eine mysql-tabelle:

id | parent | name | ...

In der parentspalte speicherst du immer die ID des vaters ab... sprich das würde dann so aussehen:

1 | 0 |Erste Generation
2 | 1 |Tochter
3 | 2 | Sohn
4 | 2 | Sohn
5 | 1 | Sohn
....

so kannst du dem Baum in der Tabelle abbilden!

nun machst du hier ne rekursieve funktion die das alles ausliest! ich probiers einfach mal, hab aber nur 4 min zeit da ich dann weg muss... :P

PHP-Code:

$stammbaum 
rekursiv(0);

function 
rekursiv($id)
{
    static 
$stammbaum = array();
    
$query "SELECT id, parent, name FROM stammbaumtabelle WHERE parent = '$id'";
    
$insert mysql_query($query);
    while(
$querydaten mysql_fetch_assoc($insert)){
        
$stammbaum[count($stammbaum)+1]['name'] = $querydaten['name'];
        
$stammbaum[count($stammbaum)]['parent'] = $querydaten['parent'];
        
//Hier noch alle anderen Daten die du übergibst in $daten abspeichern!
        
rekursiv($querydaten['id']);
    }
    return 
$stammbaum;

hmm... vielleicht nicht grad die bessere Lösung und weis wer wir man das da in der mitte mit dem Array besser Lösen könnte?

Die Funktion gibt dir nun einfach sowas hier zurück:
Code:
array(5) {
  [1]=>
  array(2) {
    ["name"]=>
    string(16) "first generation"
    ["parent"]=>
    string(1) "0"
  }
  [2]=>
  array(2) {
    ["name"]=>
    string(19) "second generation 1"
    ["parent"]=>
    string(1) "1"
  }
  [3]=>
  array(2) {
    ["name"]=>
    string(18) "third generation 3"
    ["parent"]=>
    string(1) "2"
  }
  [4]=>
  array(2) {
    ["name"]=>
    string(19) "third generation 31"
    ["parent"]=>
    string(1) "2"
  }
  [5]=>
  array(2) {
    ["name"]=>
    string(19) "second generation 2"
    ["parent"]=>
    string(1) "1"
  }
}
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!

Betatester gesucht:
Skiclub Gams / CEVI Grabs
Mit Zitat antworten