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