![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 1 Dołączył: 19.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Próbuję napisać funkcję, która umieściłaby mi id wszystkich przodków w bazie danych. Stworzyłem tabelę 'przodkowie' w bazie o strukturze, która ma strukturę: nr, osoba, pokolenie, przodkowie (przodkowie w formacie "ojciec,matka") Zacząłem pisać też funkcję która znajdzie mi wszystkich przodków. Wygląda mniej więcej tak:
Teraz właśnie utknąłem. Chciałbym rekurencyjnie w funkcji przodkowie wywołać ją jeszcze raz, ale żeby pobrała przodków ojca i matki i dodała do bazy danych. Wiadomo, że w każdym pokoleniu będzie tego więcej i tak w 2 pokoleniu będą już 4 osoby, w 3 będzie 8 itd, zaś czasem nie będzie w ogóle (z braku danych). Mógłby ktoś coś podpowiedzieć? Chodzi mi o zasadę, nie gotowy kod. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 0 Dołączył: 10.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Próbuję napisać funkcję, która umieściłaby mi id wszystkich przodków w bazie danych
czyli gdzie te dane są? z tego co rozumiem to są w bazie i trzeba z tabeli A przenisć do tabeli B ja bym to zrobił tak 1 - pobrał DISTINCTEM wszystkich członków rodziny 2 - w pętli dla każdego członka rodziny wyszukiwałbym jego przodków 3 - tak zebrane dane przygotowałbym i wpisywałbym do tabeli B i chyba wszystko |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 168 Pomógł: 1 Dołączył: 19.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam tabelę 'osoby', gdzie są różne dane dotyczące osób, w tym nr matki i ojca (również z tabeli 'osoby').
Chcę teraż w tabeli przodkowie utworzyć na podstawie tej tabeli wszystkich przodków danej osoby. Kod wyżej pobiera z tabeli osoby nr ojca i matki i tworzy stosowny rekord w tabeli przodkowie, np: 1/45/1/25,46 (odpowiednio id/osoba/pokolenie/nr ojca, nr matki). Nie wiem niestety jak to rozwiązać, żeby pobrać dalsze dane na podstawie tabeli osoby i utworzyć rekord 2/45/2/76,67,89,54 (id/osoba/pokolenie/nr dziadka, nr babki, nr dziadla, nr babki). Myślę żeby wywołać jeszcze raz funkcję przodkowie, tylko nie za bardzo wiem jak ją przerobić, żeby było dobrze. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:49 |