Baumstruktur dynamisch aus datenbank erzeugen lassen

schon klar...

aber bisher hab ich das halt so:

PHP:
$sql = mysql_query("select * from tabelle");
                


                while ($satz= @mysql_fetch_array($sql)) {

                    $sql2 = mysql_query("select * from tabelle where cat_pid = '$satz[cat_id]'");
                    
                    while ($satz2= @mysql_fetch_array($sql2)) {

                        if( $satz[cat_id] == $satz2[cat_pid] ){

                        //echo $satz[cat_name];
                        echo "<div id=\"".$satz[cat_pid]."\" style=\"display:block;\"><A href=\"javascript:sh('".$satz[cat_id]."', 'bid".$satz[cat_id]."')\" class=\"links\"><img name=\"bid".$satz[cat_id]."\" src=\"../images/aufbau/cat_plus.gif\" width=\"9\" height=\"9\" border=\"0\"></a>".$satz[cat_name]."<br></div>";
                        
                        
                        
                        
                        }

                    }

                }

und das is ja auch ziemlich kacke...

ich will also die "where cat_id = cat_pid" sache mit einem array anwenden, ist das möglich ?!
 
Nein, du musst dir eine Rekursion dafür schreiben. Eine Funktion, die dir alle Childs zu einem Parent ausgibt, und dann sich selbst für jedes Child wieder aufruft (und damit dann alle Childs zu den Childs von dem Parent ausgibt, etc.).
 
Oliver Gringel hat gesagt.:
Nein, du musst dir eine Rekursion dafür schreiben. Eine Funktion, die dir alle Childs zu einem Parent ausgibt, und dann sich selbst für jedes Child wieder aufruft (und damit dann alle Childs zu den Childs von dem Parent ausgibt, etc.).


oh mann, check das nich :-(

kannst du mir vielleicht mal bisschen cotschnipsel zu meinem problem angeben... ich hab mir zwar die seiten, die du mir gezeigt hast durchgeschaut, aber ich kann das irgendwie nich auf mein problem anwenden ...
 
Ich hab dir irgendwelche Seiten gezeigt? Das ist mir neu...
Ein kleines Beispiel:

PHP:
<?php

$name[0][] = '1';
$id[0][] = 1;
$name[0][] = '2';
$id[0][] = 2;
$name[1][] = '1.1';
$id[1][] = 3;
$name[1][] = '1.2';
$id[1][] = 4;
$name[3][] = '1.1.1';
$id[3][] = 5;
$name[3][] = '1.1.2';
$id[3][] = 6;
$name[6][] = '1.1.2.1';
$id[6][] = 7;
$name[6][] = '1.1.2.2';
$id[6][] = 8;
$name[2][] = '2.1';
$id[2][] = 9;
$name[2][] = '2.2';
$id[2][] = 10;

function out($pid, $i)
{
	global $id, $name;
	static $ebene;
	if(isset($id[$pid]))
	foreach($id[$pid] AS $keys => $ids)
	{
		for ($j=0; $j < $i; ++$j)
			echo '-';
		echo $name[$pid][$keys].'<br>';
		out($ids, $i + 1);
	}
	return;
}


out(0, 0);


?>
 
Zurück