Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Genealogia - wypisywanie przodków.
MalyKazio
post
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:
  1. <?php
  2. function przodkowie($osoba, $pokolenie=1) {
  3.  
  4. $q="SELECT * from osoby where nr=$osoba";
  5. $wynik = mysql_query($q);
  6. $wstepni="$ojciec, $matka";
  7.  
  8. insert into przodkowie(nr, osoba, pokolenie, przodkowie) values ('',$osoba,$pokolenie,$wstepni)
  9.  
  10. }
  11. ?>


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.
Go to the top of the page
+Quote Post
juzwa
post
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
Go to the top of the page
+Quote Post
MalyKazio
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:49