phpbar.de logo

Mailinglisten-Archive

Re: Tree-Select
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tree-Select



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 "&nbsp;";
		}
		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 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive