![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witajcie, jest problem, mam drzewko w klasycznym układzie, czyli ID|Name|Parent które mi generuje takie coś:
Książki |- Kryminał |-- Kryminał_1 |--- Kryminał_2 i zaszła potrzeba klonowania całych gałęzi, czyli stworzenie drzewka w stylu: Książki |- Kryminał |-- Kryminał_1 |--- Kryminał_2 | |- Kryminał_klon |-- Kryminał_1_klon |--- Kryminał_2_klon Napisałem funkcję, która mi przelatuje po całej gałęzi i wyciąga wszystkie dzieci dla danego rodzica:
i teraz myślę i nie wiem, jak dodać do bazy pobraną gałąź? Myślałem, że można to robić po kolei, czyli dodaję rodzica, za pomocą mysql_insert_id pobieram jego ID i do tego ID dopisuję dziecko, tylko problem polega na tym, że skąd mam wiedzieć (już po pobraniu gałęzi) które dziecko ma być dodawane do którego rodzica, bo zauważcie, że w tabeli wyników trzymam parent dla starej gałęzi, a w przypadku tworzenia nowej, zmienna parent się zmienia. Ktoś może mnie pokierować na właściwy tor myślenia, bo stanąłem w tym miejscu i nic dalej... Ten post edytował miedzna 15.02.2009, 00:04:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
moment, moment, mówiąc drzewo masz na mysli takie drzewo z prawdziwego zdarzenia typu graf, gdzie znana jest struktura takiego drzewa?
czyli masz ustalony korzeń, gałęzie i liście, gdzie każdy liść ma te same parametry (oczywiście inne wartości moga być) jesli tak to możesz zastosować algorytmy przechodzenia drzew PS. albo jesli drzewo to masz w tablicy , to po prostu skopiuj tę tablicę i potem pozmieniasz tylko id czy nazwy czyli wyciągasz z mysql całe drzewo które chcesz sklonować i zapisujesz do tablicy potem robisz kopie tej tablicy, i w kopii zmieniasz np. nazwy na ..._klon i zapisujesz tą tablicę do bazy (oczywiście w etapach, czyli rodzic, dzieci..., wnukowie, zresztą zalezy jak to masz w bazie zapisane) Ten post edytował rzymek01 22.02.2009, 12:35:24 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 06:30 |