phpbar.de logo

Mailinglisten-Archive

[php] PHP/mySQL Baumstruktur

[php] PHP/mySQL Baumstruktur

Björn Schotte php_(at)_phpcenter.de
Sat, 18 Aug 2001 20:14:23 +0200


* Tom Malek wrote:
> Ich suche aber eine Klasse rein ohne das grafische Output, denn das möcht'
> ich selber handlen.

Sagte ich doch, http://www.ulf-wendel.de/menu3/

> Ausserdem soll das ganze auf mySQL-Basis funktionieren,
> was bei Menu3 wohl nicht der Fall ist !?

Macht ja nix. Wenn deine DB-Menüstruktur über parent
gelöst ist, also z.B.

   cid
   cparent
   cname
   
   cid   cparent   cname
   1     0         foo
   2     1         untermenuepunkt von foo
   
Dann baust du dir einfach eine rekursive Funktion, die
das zusammenschneidert, z.B. so:

<?php

class tree_manager {

	[...]
	
        function read_categories_into_tree($parent, &$readarr) {
          $db = new DB_job;
          $db1 = new DB_job;

          $db->query("select * from category where cparent='$parent'");
          
          while ($db->next_record()) {
            $id = $db->f("cid");
            $name = $db->f("cname");

            $hash = $id;

            $readarr["$hash"] = array(
            			"title" => $name,
        			"url" => "catedit.php?id=$id",
				"target" => "right"
            			);

            $db1->query("select count(*) as anz from category where cparent='$id'");
            $db1->next_record();
            $anz = $db1->f("anz");

            if ($anz > 0) {
              $readarr["$hash"]["sub"] = array();
              $this->read_categories_into_tree($id, $readarr["$hash"]["sub"]);
            }
          }
        }

}
?>


PS: bitte keine Fullquotes und nach 72 Zeichen einmal
auf die RETURN-Taste hauen, Mails sind keine Textver-
arbeitung.

-- 
Die Marktumfrage zu PHP Schulungen, Consultingdienstleistungen und
frei verfügbaren Artikeln.

        Mitmachen? http://www.thinkphp.de/survey/survey.php


php::bar PHP Wiki   -   Listenarchive