hi
das problem liegt doch in der mehrzahl!
liegt es nicht, da pro schleifen durchlauf nur ein eintrag ausgegeben wird und nach jedem eintrage dessen id an die funktion weitergegeben wird.
ich finde doch nicht nur ein posting sondern mehrere, so viele postings wie ich finde muss ich auch auf weitere unterpostings durchsuchen.
mal angenommen...
deine datenbankabfrage liefert für parentid = 0 drei eintraege
mit ihren ids (0)1(1), (0)2(2),(0)3(3) {(parentid)eintrag(id)}
beim ersten schleifen durchlauf bekommst du den ersten eintrag angezeigt und bevor die schleife von vorne beginnt um dir den nächsten eintrag anzuzeigen wird die funktion mit der id 1 weitergegeben
in coldfusion würde sowas so aussehen (PHP kann ich leider nicht):
als erstes wird ein CustumTag definiert (sowas wie eine auslagerbare funktion die in einer eigenen datei steht): ShowTree
<!-- Definition des Startparameters, hier 0 -->
<cfparam name="attributes.parent" default="0">
<!-- Die Datenbankabfrage // gibt werte "bezeichnung" & "id" zurück-->
<cfquery datasource="myDB" name="auslesen">
select * from auftrag where parentid = #attributes.parent#
</cfquery>
<!-- Ausgabe -->
<cfoutput query="auslesen">
<ul><li>#auslesen.bezeichnung#
<!-- Rekursion // Aufruf des CustomTags -->
<cf_ShowTree parent="#auslesen.id#>
</li></ul>
</cfoutput>
das ganze in einer CFML-Datei eingebunden würde so aussehen:
<html>
<head>
<title>Beispiel für Rekursion</title>
</head>
<body>
<cf_ShowTree parent="0">
</body>
</html>
diese seite würde mir nun alle eintraege der datenbank in baumstruktur auflisten.
vieleicht hilft dir die veranschaulichung, oder evtl. kann dir das auch jemand in PHP übersetzen :)
so long
ole
(8-)>
--
Die Summe aller menschlichen Intelligenz ist eine Konstante.
Das Problem ist das Bevölkerungswachtum...
sh:( fo:) ch:| rl:° br:& n4:° ie:% mo:} va:| de:] zu:| fl:( ss:) ls:\ js:|
If you can't beat 'em...eat 'em !