Ich präsentiere hier mal meine Lösung: Das PHP Script "sub.php": PHP-Code: <?php $host = "localhost"; $user = "root"; $password = "deinpasswort"; $db = "sub"; global $maxstufe; $maxstufe = 10; $connection = mysql_connect($host, $user, $password); mysql_select_db($db); sub_loop("", 0, ""); function sub_loop($id, $stufe, $zeiger) { global $maxstufe; $temp = get_subs($id); for($j = 0; $j < count($temp); $j++) { echo $zeiger.">".$temp[$j]['name'] ."<br>\n"; if($stufe < $maxstufe) { sub_loop($temp[$j]['id'], ($stufe+1), $zeiger." "); } } } function get_subs($id) { $query = "SELECT * FROM `sub` WHERE `parent` = '".$id."';"; $response = mysql_query($query); while($temprow = mysql_fetch_array($response)) { $returnarray[] = $temprow; } return $returnarray; } mysql_close($connection); ?> Die MySQL Befehle: PHP-Code: # # Tabellenstruktur für Tabelle `sub` # CREATE TABLE `sub` ( `id` int(10) NOT NULL auto_increment, `parent` int(10) NOT NULL default '0', `name` varchar(200) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=11 ; # # Daten für Tabelle `sub` # INSERT INTO `sub` VALUES (1, 0, '1'); INSERT INTO `sub` VALUES (2, 0, '2'); INSERT INTO `sub` VALUES (3, 1, '1.1'); INSERT INTO `sub` VALUES (4, 1, '1.2'); INSERT INTO `sub` VALUES (5, 2, '2.1'); INSERT INTO `sub` VALUES (6, 2, '2.2'); INSERT INTO `sub` VALUES (7, 3, '1.1.1'); INSERT INTO `sub` VALUES (8, 3, '1.1.2'); INSERT INTO `sub` VALUES (9, 4, '1.2.1'); INSERT INTO `sub` VALUES (10, 4, '1.2.2'); Und das Ergebnis: http://mannithedark.ma.funpic.de/Tests/sub.php Manni
<?php $host = "localhost"; $user = "root"; $password = "deinpasswort"; $db = "sub"; global $maxstufe; $maxstufe = 10; $connection = mysql_connect($host, $user, $password); mysql_select_db($db); sub_loop("", 0, ""); function sub_loop($id, $stufe, $zeiger) { global $maxstufe; $temp = get_subs($id); for($j = 0; $j < count($temp); $j++) { echo $zeiger.">".$temp[$j]['name'] ."<br>\n"; if($stufe < $maxstufe) { sub_loop($temp[$j]['id'], ($stufe+1), $zeiger." "); } } } function get_subs($id) { $query = "SELECT * FROM `sub` WHERE `parent` = '".$id."';"; $response = mysql_query($query); while($temprow = mysql_fetch_array($response)) { $returnarray[] = $temprow; } return $returnarray; } mysql_close($connection); ?>
# # Tabellenstruktur für Tabelle `sub` # CREATE TABLE `sub` ( `id` int(10) NOT NULL auto_increment, `parent` int(10) NOT NULL default '0', `name` varchar(200) NOT NULL default '', PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=11 ; # # Daten für Tabelle `sub` # INSERT INTO `sub` VALUES (1, 0, '1'); INSERT INTO `sub` VALUES (2, 0, '2'); INSERT INTO `sub` VALUES (3, 1, '1.1'); INSERT INTO `sub` VALUES (4, 1, '1.2'); INSERT INTO `sub` VALUES (5, 2, '2.1'); INSERT INTO `sub` VALUES (6, 2, '2.2'); INSERT INTO `sub` VALUES (7, 3, '1.1.1'); INSERT INTO `sub` VALUES (8, 3, '1.1.2'); INSERT INTO `sub` VALUES (9, 4, '1.2.1'); INSERT INTO `sub` VALUES (10, 4, '1.2.2');
--
Foren-Regeln