Mailinglisten-Archive |
Hi Michael, Am Donnerstag, 23. Februar 2006 17:05 schrieb Michael Borchers: > ich werde mich ans rekursive modell halten, hier meine DB struktur: > > CREATE TABLE `menu` ( > `menu_id` int(11) NOT NULL auto_increment, > `menu_name` varchar(255) NOT NULL default '', > `menu_level` char(1) NOT NULL default '0', > `refer2menu_id` int(11) NOT NULL default '0', > `menu_id_parent` int(11) NOT NULL default '0', > PRIMARY KEY (`menu_id`), > KEY `menu_level` (`menu_level`), > KEY `menu_id_parent` (`menu_id_parent`), > KEY `refer2menu_id` (`refer2menu_id`) > ) > > > ich glaube aber mein denkansatz will sich nicht so recht umsetzen > lassen. > > wie würde der rekursive ablauf theoretisch aussehen, welche funktion > ruft sich wie selbst auf?! > ich verzweifel hier gleich:( kurzes Beispiel: function getLevel($iIdParent) { $sQuery = 'SELECT * FROM menu WHERE menu_id_parent = '.$iIdParent; $rResult = mysql_query($sQuery); while ($aLine = mysql_fetch_array($rResult, MYSQL_ASSOC)) { echo('<br />'.str_pad($aLine['menu_name'], $aLine['menu_level'], "--- ", STR_PAD_LEFT)); getLevel($aLine['menu_id']); } } getLevel(0); Das Beispiel setzt voraus, daß das bzw. die Elemente der obersten Ebene die menu_id_parent = 0 haben. Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive