Mailinglisten-Archive |
so hab' ich aber bei einer ziemlich gro=DFen Menustruktur ziemlich viele DB= -Anfragen. Beispielsweise m=F6chte ich einmal die komplette Struktur laden = und mittels Javascript als Exlorer-Menu im Browser anzeigen lassen. Bis ich= da die komplette Struktur aus der DB ausgelesen hab', wurden ziemlich viel= e SELECT-Anfragen gemacht.=20 > * Tom Malek wrote: > > Ich suche aber eine Klasse rein ohne das grafische Output, denn das > m=F6cht' > > ich selber handlen. >=20 > Sagte ich doch, http://www.ulf-wendel.de/menu3/ >=20 > > Ausserdem soll das ganze auf mySQL-Basis funktionieren, > > was bei Menu3 wohl nicht der Fall ist !? >=20 > Macht ja nix. Wenn deine DB-Men=FCstruktur =FCber parent > gel=F6st ist, also z.B. >=20 > cid > cparent > cname > =20 > cid cparent cname > 1 0 foo > 2 1 untermenuepunkt von foo > =20 > Dann baust du dir einfach eine rekursive Funktion, die > das zusammenschneidert, z.B. so: >=20 > <?php >=20 > class tree_manager { >=20 > =09[...] > =09 > function read_categories_into_tree($parent, &$readarr) { > $db =3D new DB_job; > $db1 =3D new DB_job; >=20 > $db->query("select * from category where cparent=3D'$parent'"); > =20 > while ($db->next_record()) { > $id =3D $db->f("cid"); > $name =3D $db->f("cname"); >=20 > $hash =3D $id; >=20 > $readarr["$hash"] =3D array( > =09=09=09"title" =3D> $name, > =09=09=09"url" =3D> "catedit.php?id=3D$id", > =09=09=09=09"target" =3D> "right" > =09=09=09); >=20 > $db1->query("select count(*) as anz from category where > cparent=3D'$id'"); > $db1->next_record(); > $anz =3D $db1->f("anz"); >=20 > if ($anz > 0) { > $readarr["$hash"]["sub"] =3D array(); > $this->read_categories_into_tree($id, > $readarr["$hash"]["sub"]); > } > } > } >=20 > } > ?> >=20 >=20 > PS: bitte keine Fullquotes und nach 72 Zeichen einmal > auf die RETURN-Taste hauen, Mails sind keine Textver- > arbeitung. >=20 > --=20 > Die Marktumfrage zu PHP Schulungen, Consultingdienstleistungen und > frei verf=FCgbaren Artikeln. >=20 > Mitmachen? http://www.thinkphp.de/survey/survey.php > --=20 > ** http://www.php-center.de ** > Die PHP-Liste: mailto: php_(at)_phpcenter.de > http://lists.phpcenter.de/mailman/listinfo/php >=20 ______________________________________________________ http://firemail.fireball.de - Ihr Briefkasten im Web.=20 Einfach, schnell, sicher.
php::bar PHP Wiki - Listenarchive