Mailinglisten-Archive |
Hallo, man heisst ja immer, dass rekursive Querys Resourcen fressen ! Deshalb bevorzuge ich die Variante, alles in einem Zug auszulesen und mittels PHP mundgerecht zu machen. Und damit das auch Hand und Fuss bekommt, habe ich Peters Loesung gegen die PHP-Variante um die Wette laufen lassen: - es muessen 12 Querys von MySQL beantwortet werden: 18,883 ms - dagegen die einzelne Abfrage mit PHP-Nachbesserung: 2,514 ms Denke, das sagt alles ! Ach-ja, hier ist die PHP-Funktion, welche auch gleich noch die Strukturtiefe ermittelt, was eine Anzeige sehr vereinfacht: function converter($ARR, $prnt=0, $dept=0) { /* * - convertiert DB-Result in ein mehrdimensionales Array * erwartet die folgende Struktur: * Array ( * [0] => Array ( * [0] => -- Parent-ID * [1] => -- Item-ID * [2] => -- Description * [3] => -- URL * ) * ) * $prnt=0, - Parent-Element (default = 0) * $dept=0) - Tiefe des Baumes (default = 0) */ global $maxD; $NEW = array(); $X = 0; foreach($ARR as $AA) { if ($AA[0] == $prnt) { $maxD = ($dept > $maxD) ? $dept : $maxD; $NEW[$X] = array('dept'=>$dept, 'self'=>$AA[1], 'text'=>$AA[2], 'link'=>$AA[3]); $SU = converter($ARR, $AA[1], ($dept + 1)); if (count($SU) > 0) { $NEW[$X][] = $SU; } $X++; } } return $NEW; } m. b. G. Norbert _____________________ normal: 02682-966898 Notruf: 0163-3613642 --------------------- e.o.m.
php::bar PHP Wiki - Listenarchive