Seite 2 von 2

Re: rekursive Funktion umsortieren

Verfasst: 04.10.2013 18:14
von bluebull
die aktuelle Person bleibt leider drin...

edit:
ich habe einen nicht sehr eleganten Weg gefunden:

ich ermittle vorab Vater und Mutter:

Code: Alles auswählen

// vater und mutter ermitteln
$query = mysql_query( "SELECT vater_id FROM personen WHERE id = '$id'");
while($row = mysql_fetch_object($query))
         {
         $id_vater = "$row->vater_id";
         }


$query = mysql_query( "SELECT mutter_id FROM personen WHERE id = '$id'");
while($row = mysql_fetch_object($query))
         {
         $id_mutter = "$row->mutter_id";
         } 
und habe die Funktion auf kopiert und lasse sie mit vater_id und mutter_id durchlaufen. Das Ergebnis ist ok, aber die Variante gefällt mir nicht. Vielleicht hat mir jemand noch eine bessere?

Re: rekursive Funktion umsortieren

Verfasst: 13.10.2013 02:27
von gn#36
Wenn du umbauten an deiner Datenbank machst könnte es noch ein paar weitere Möglichkeiten für den eleganten Zugriff geben. Zum Beispiel könntest du dir eine weitere Tabelle anlegen, in der du die Verwandschaftsbeziehungen über Vater und Mutter hinausgehend speicherst, z.B. mit den Spalten person_id, ancestor_id, ancestry_degree. Das sorgt dann zwar für redundante Informationen in der DB, lässt sich dafür aber schneller und einfacher abrufen - man erhält mit einer DB-Abfrage alle notwendigen Daten (und zwar auch nur die) und kann die sogar mit Hilfe des Verwandschaftsgrads schon vorsortieren.