Mailinglisten-Archive |
Rehi Jan Jan Kunzmann wrote: > Johannes Vogel wrote: > > Zumindest Oracle bietet eine Tree-Funktion. > Theoretisch könnte man sowas sicher auch in einer mySQL-Procedure > unterbringen. Wäre mal ein nettes Spielzeug, wobei ich mich damit noch > nicht ausreichend befasst habe. Könnte man garantiert und wäre eine wirklich sinnvolle Erweiterung (aber wer fragt denn schon MICH :-( *g*) > > Stattdessen würde ich in diesem Fall eine applikatorische Lösung > > vorschlagen: Da ziemlich wahrscheinlicherweise sowieso eine > > Presentation-Applikation davorsteht, machst du halt ne rekursive > > Routine, welche dir jeweils den Baum ausliest. > Naja, das ist vielleicht ausreichend für die Visualisierung des Baumes, > aber wie willst du das in der WHERE-Klausel anwenden? Ausgangsfrage war > doch ein SELECT ... WHERE <Kategorie innerhalb eines Astes>. Nun, applikatorisch heisst für mich, realisiert in Perl, PHP oder what ever... Ich kann mir sowas vorstellen: /* dieses script ist nur symbolischer art zur darstellung, wie ich es mir in etwa erdenken könnte! z.b. müsste je nach dem die verbindung zum server neu hergestellt werden bei jedem call von tree(). auch fehlen die richtigen variablen-zuweisungen! ($result würde bei jedem aufruf überschrieben! die abbildung ist aber in etwa in PHP. wenn jemand sowas als mysql-procedure schreiben könnte (natürlich konfigurierbar und etwas sinnvoller in der rückgabe als es hier beschrieben ist, wäre ich froh über eine zusendung... :) nicht getestet, nicht doppelt studiert, einfach nur niedergetippt... :) */ function tree($deep, $ParentID) { $sql = "select ID, Name from Tree where Parent_ID = $ParentID"; $result = mysql_query($sql); while ($entry = mysql_fetch_object($result)) { for ($i=0; $i<=$deep; $i++) { print " "; } print "$entry->Name<br>\n"; tree($deep+1, $entry->ID); } return; } ilebe grüsse, johannes --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive