Stamboom met mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

08/09/2012 20:43:28
Quote Anchor link
Hallo mede leden,

Ik heb een vraag ik ben bezig met een hondenkennel website aan het maken
het probleem waar ik tegen aanloop is dat er ook een stamboom bij moet tot 5 generaties terug.

Hoe kan ik dit het beste met mysql doen.
Ik heb al een begin en dat is zo.

[table: parents]
id
parentsid
fotourl_male
fotourl_female
desc_male
desc_female

[table: stamboom]
id
parentsid
gen1_male
gen1_female
gen2_male_gen1_male
gen2_female_gen1_male
gen2_male_gen1_female
gen2_female_gen1_female

En ga zo maar door. Als ik het zo doe dan krijg ik op een gegeven moment natuurlijk een veld wat er zo uitziet.
gen5_male_gen4_male_gen3_male_gen2_male_gen1_male

vindt het een beetje onlogisch.
Hoe kan ik dit het beste aanpakken.

Met vriendelijke groet,
Thomas de Vries
 
PHP hulp

PHP hulp

21/12/2024 18:05:43
 

08/09/2012 21:15:30
Quote Anchor link
Zet al je honden in een tabel
In een tweede tabel zet je welk koppel de ouders zijn.

Het veld parents geeft dan aan welk "huwelijk" hij uit voort is gekomen en daar vindt je wie de vader en de moeder zijn.
 
John D

John D

08/09/2012 22:36:39
Quote Anchor link
1 hond heeft 1 vader en heeft 1 moeder. Dat kan in 1 tabel. Vooral niet krom gaan werken met meerdere tabellen. Het is immers al uitgenormaliseerd. Het ophalen tot 5 generaties is niet eenvoudig met MySQL omdat MySQL vrijwel geen analytische functies kent.
Gewijzigd op 08/09/2012 22:39:11 door John D
 
Thomas de vries

thomas de vries

08/09/2012 23:37:53
Quote Anchor link
hmm ik heb het al wat stef aangaf gedaan.
Maar ik zit nu met het volgende en dat is de layout.

Ik zou het graag zo willen zien

----------------vadervaderbully
-----vaderbully
----------------omaomabully
Bully
----------------vadermoederbully
-----moederbully
----------------moedermoederbully

Is dit ubberhoupt op deze manier te regelen?
ik heb nu dit
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$sql
= mysql_query("
    SELECT
    parents.dogsid,
    parents.parentsid,
    honden.name,
    honden.dogsid,
    honden.parentsid
    FROM
    parents,honden
    WHERE
    parents.parentsid = honden.parentsid"
);
    echo '<table width="100%" border="1">
    <tr>
        <td>Roxy:</td>
        <td>
            <table width="100%" border="0"><tr>'
;
            $s = 1;
            while($row = mysql_fetch_assoc($sql))
            {

                echo '<td>'.$row['name'].'</td>';
                if($s >= 4)
                {
   echo '</tr><tr>';  $s = 0;  } $s++;
            }

            echo '
            </table>
        </td>
    </tr>'
;
    echo '</table>';
?>


Dit geeft het zo weer
-----vader
Roxy
-----moeder
Gewijzigd op 08/09/2012 23:40:01 door thomas de vries
 
Eddy E

Eddy E

09/09/2012 10:15:15
Quote Anchor link
Hier bestaan al kant en klare scripts voor.
Meestal wel gericht op mensen, maar voor dit idee heb kan je het ook voor honden gebruiken:
https://www.google.nl/search?client=opera&rls=nl&q=genealogie+php+script&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest

De bovenste link geeft een mooie link aan: http://www.familytreephp.com/screenshots/
Vooral om dat die GEDCOM-bestanden kan inlezen.
Nu weet ik dat er diverse programma's zijn (als GD90 danwel GensData (Pro)) die heel makkelijk stambomen maken. Dat gaat gewoon offline.
Je exporteert naar GEDCOM, gooit hem in de map en het PHP-script doet de rest. Dat werkt veel beter dan de HTML-export-functie in die programma's.
Nu is GensData Pro niet gratis (legaal dan), maar volgens mij kost een eeuwige licentie maar 15 euro. Moet te doen zijn, toch?

Toevoeging op 09/09/2012 10:17:07:

Om je toch op weg te helpen met je eigen script:
Elk persoon/hond heeft een eigen ID. Bij elke hond geef je alleen vader_id en moeder_id aan. Meer relaties niet.

Met PHP knoop je dat aan elkaar.
Honden kennen natuurlijk geen huwelijken, maar als er een kind is met een vader_id en moeder_id, dan weet men dus dat er gekruist is tussen die twee. Die kruising hoef je niet apart te vermelden in een tabel oid.
 

09/09/2012 11:07:22
Quote Anchor link
En hoe haal je dan alle zusjes broetjes op?
 
Eddy E

Eddy E

09/09/2012 11:11:22
Quote Anchor link
Die hebben dezelfde set vader_id en moeder_id toch?
Meestal wordt dan alleen de vader-lijn gevolgd (althans: bij mensen ivm achternaam): in dat geval: wie hebben hetzelfde vader_id?
 

09/09/2012 11:32:57
Quote Anchor link
Kan je dus nooit je stief-broertjes vinden zo. In genealogie volg je familiebanden en die bestaan uit alle relaties van de pap de mam.
 
Eddy E

Eddy E

09/09/2012 11:42:52
Quote Anchor link
Je kan maar 1 vader hebben.
Halfbroertjes hebben dezelfde vader.

Maar wil je halfbroertjes hebben van dezelfde moeder, kan dat natuurlijk ook gewoon. Kwestie van naar vader_id en moeder_id kijken. Zo moeilijk is dat niet.
Echter, (en dat geldt bij mensen): je kan maar tot 1 geslacht behoren: dat van je vader.
Dus een halfbroertje via de moeder is niet in hetzelfde geslacht.

Stiefkinderen (dus niet meer bij zijn biologische ouders) wordt inderdaad niet in de genealogie opgenomen. Ook in in de stamboom. Tenslotte blijven stiefouders de stiefouders (en worden ze nooit biologisch: ook niet in de stamboom).

En waar ik spreek over stief- danwel halfbroertjes kan het ook over stief-/halfzusjes gaan.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.