![]() |
![]() |
![]()
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: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Udało mi się poprawnie klonować ale tylko 1 poziom, czyli wszystkie dzieci pod danym rodzicem, ale nie wiem z jakimi parametrami mam wywołać funkcję klonowania ponownie, żeby przeleciała po wszystkich poziomach zagłębienia. Siedzę nad tym już od kilku dni i nie bardzo mi wychodzi, poniżej kod, ponowne wywołanie funkcji zakomentowałem, bo tu właśnie jest chyba problem.
Pomoże ktoś? Nospor, Ty zawsze pomagasz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował miedzna 14.02.2009, 23:59:58 |
|
|
![]()
Post
#4
|
|
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 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 401 Pomógł: 1 Dołączył: 10.03.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To co, nikt nie wie jak to wykonać? (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 20:44 |