Einzelnen Beitrag anzeigen
Alt 06.10.2005, 14:01  
Gast
 
Beiträge: n/a
Standard Rückgabewert einer rekrusiven Funktion

Hi Leute !

hab da mal wieder ein kleines Problem wo ich sehr gut euer Wissen gebrauchen kann...

Erstmal eine kleine Beschreibung:

Ich habe eine Tabelle in der eine Menüstrktur abgelegt ist. Jeder Punkt kann beliebig viele Unterpunkte haben, jeder unterpunkt kann wieder beliebige Unterpunkte haben usw.

Die Tabelle sieht so aus:

uid | pid | menuname


uid = unique identifier
pid = parent_id

Ich habe mir eine Funktion geschrieben, der ich eine uid übergeben kann, und dir mir alle unterpunkte zu dieser Funktion ausgeibt.
Das ist auch alles wunderbar, num zu meinem Problem:
Im moment gebe ich in der Funktion selber die Unterpunkte aus - Das ist natürlich nicht so schön, viel lieber wäre es mir wenn die Funktion mir einen Array zurückliefern würde.
Und genau da ist mein Problem: Dadurch das sich die Funktion immer wieder selber aufruft, gehen meine Werte immer wieder verloren. Die Lösung wäre es, der Funktion selber den Array mit den aktuellen Werten zu übergeben, und die neuen Werte diesen anzufügen. Und genau hieran scheitere ich :/

Hier die Funktion:

Code:
<?	function checkMenuePoints($pid, $rekursiv = 1)
	{
		# $pid = ParentID eines Menüounktes, zu dem die Unterpunkte ausgegeben werden sollen
		# $rekursiv = 0 oder 1; legt fest ob die Unterpunkte rekursiv ausgegeben werden sollen, oder ob nur die direkten
		# Unterpunkte angezeit werden
		
		$SQL = "SELECT uid, pid, name FROM tbl_faqbaum WHERE pid = '$pid';";
		$rssubmenue = mysql_query($SQL);
		$margin = $marg;
	
		if (mysql_num_rows($rssubmenue) > 0) // Unterpunkte vorhanden, Unterpunkt ausgeben und prüfen ob es weitere Unterpunkte gibt
		{ 
		$SQL2 = "SELECT UID FROM tbl_faqbaum WHERE pid='$pid'";
		$rsuid = mysql_fetch_object(mysql_query($SQL2));
		#$uid = $rsuid->uid;

			while ($submenue = mysql_fetch_object($rssubmenue)) 
			{ ?>
				
				<? echo stripslashes($submenue->name) ?>
				


				<? 

				if ($rekursiv == 1)
				{
					checkMenuePoints($submenue->uid,$rekursiv);	
				}

			}
		}
	}
?>
Das ganze sollte ohne globale variablen funzen...

ich hoffe ihr könnt mir helfen,
grüße Ben
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten