Tom: return in rekursiver Funktion

Beitrag lesen

Hello,

$baum = mysql_fetch_array($baum_query);

entschudlige bitte, wenn ich nicht auf Dein eigentliches Problem eingehe.
Ich will Dich aber auf ein anderes wichtiges aufmerksam machen.

Du erzeugst einen MySQL-Resource-Identifier

Da der außerhalb des PHP-Codes erzeugt wird, und in PHP nur in der Variablen $baum gespeichert wird, muss er separat wieder entsorgt werden. An $baum könnte schließlich ein riesiges Resultset hängen, dass viel Speicher verbraucht. MySQL weiß nichts davon, dass PHP mit dem Ende der rekursiv erzeugten  Instanz der Funktion den Bezeichner wieder freigegeben hat. Nur leider kommst Du nun auch nicht mehr an das Resultset und das gammelt da nun bis zum Scriptende oder, bei Schleifen und Rekursion nicht unüblich, bis zum Crash.

Ok, dann ist das Script sicher auch zuende, aber eben nicht gewollt.

Ein harzliches Glückauf

Tom vom Berg

http://bergpost.annerschbarrich.de

--
Nur selber lernen macht schlau