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"
}
}