Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Baumstruktur kopieren (MySQL/PHP)

  Alt 15. Mai 2013, 13:33
Ich würde den Baum 1:1 kopieren und das AutoInc für den Kopiervorgang ausschalten.
So einfach ist das nicht.
Ausser der id muss auch bei jedem Datensatz die parent_id geändert werden.

Ich würde die Aufgabe mit Delphi in einer rekursiven Funktion lösen.
Delphi-Quellcode:
// kopiert einen Datensatz mit einer best. id und liefert die neue id zurück
function CopySingleNode(id, new_parent_id:integer):integer;

// liefert eine Liste mit alle Kindern zu einer bestimmten parent_id
procedure GetChildrenList(parent_id:integer; list:TIntegerList);

// kopiert rekursiv einen ganzen Zweig und hängt ihn unter parent_id ein
procedure CopyTree(id, parent_id:integer);
begin
  parent_id := CopySingleNode(id, parent_id);
  GetChildrenList(id, list);

  foreach x in list do
    CopyTree(x, parent_id); // rekursiver Aufruf
end;
fork me on Github
  Mit Zitat antworten Zitat