rekursive Funktion umsortieren

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
bluebull
Mitglied
Beiträge: 11
Registriert: 29.09.2013 00:51

Re: rekursive Funktion umsortieren

Beitrag 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?
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: rekursive Funktion umsortieren

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“