Hello K. H.,
ich komme nicht auf den Fachbegriff, wenn ein Unterprogramm sich selbst aufruft. So kann man Dateinamen lesen und die Dateien in Unterordnern.
Das ist jetzt (mindestens) zweischneidig. Du suchst vermutlich den Begriff "Rekursion".
Das Programm selbst kennt bei der klassischen Rekursion aber den Rückweg nicht, sondern nur der Stack mit dem Registerstapel kennt den Aufrufer. Man kann also nicht beliebig in Ablauf hin und zurück laufen. Den Rücksprung regelt das Betriebssystem. Zur freien Suche ist diese Form der Rekursion also ungeeignet.
Was Du benötigen würdest, wäre eine doppelt (vorwärts/rückwarts) verkettete Liste oder ein Baum.
PHP's "Arrays" arbeiten im weitesten Sinne so. Der tatsächliche Speicheraufbau dazu ist wegen Optimierung noch etwas komplizierter, aber in PHP's Arrays kann man zu jedem Element den Vorgänger und den Nachfolger, bzw. den Nachfolgertypen (Skalar, weiteres "Array", ...) ermitteln.
So ist es möglich, einen ganzen Baum ausgehend von einem tiefen Blattobjekt auch rückwärts bis zur Wurzel zurück zu verfolgen.
Bei der Genealogie hat man dann aber immer noch mit den Kuckuckskindern zu kämpfen. Die muss man in der Struktur programmatisch extra behandeln.
Ich suche so ein Konzept für Genealogie. Jede Person hat eine mutter_id und eine vater_id. Könnte ich mit einem einzigen SQL-Kommando alle Eltern, Großeltern usw. abfragen?
Dasselbe - aber vermutlich in einem zweiten Kommando - für die Nachfahren? Da ich drei Kinder habe, kommt meine id bei denen dreimal als vater_id vor.
Glück Auf
Tom vom Berg