![]() Mailinglisten-Archive |
Hi Leute, hab mir einen Kategoriebaum angelegt, der Aufbau ist dieser: +--------+----------+----------+----------+ | catId | parentId | catName | catDepth | +--------+----------+----------+----------+ Dadurch m�chte ich beliebig (naja fast) viele Kategorien und beliebige Kategorietiefen speichern. Soweit so gut. Wenn ich jetzt den Kategoriebaum komplett auslesen will, mache ich das mit einem select statement das alle Kategorien in Arrays einliest. (Ich wollte nicht x select abfragen machen, klar) dazu hab ich mir dann eine rekursive Funktion geschrieben, die die Arrays durchforstet. Das auslesen dieses Kategoriebaumes mit ca 120 Eintr�ge mit einer Tiefe von 3 dauert 2.5 sec. das scheint mir doch ein bischen lange. Meine Frage nun wie kann man das ganze effizienter machen? keine Rekusrion verwenden? (dann w�ren aber beliebige Tiefen nicht m�glich) Dennis $catIndex ist das Array das einfach eine Nummerierung 1-x enth�lt Die anderen arrays wie sie Spaltennamen in der DB function showCategory($ID) { for($i = 0 ; $i < sizeof($catIndex) ; $i++){ if($catId[$i] == $ID) { //einr�cken for($k=0;$k<$catDepth[$i];$k++) { echo " "; } echo "id: $catId[$i] $catName[$i]<br>"; for($j = 0 ; $j < sizeof($catIndex) ; $j++){ if($catParentId[$j] == $ID) { showCategory($catId[$j]); } } } } }
php::bar PHP Wiki - Listenarchive