Leitai: stammbaum erstellen

Hallo!

Ich wollte eine Stammbaum-Datenbank anlegen und bräuchte mal kurz Hilfe, da ich noch blutiger Anfänger bin was das Ganze betrifft ^^

Also ich brauch jeweils ein Kind und die beiden Eltern. So sollte man auch automatisch auf die Großeltern kommen, wenn man jedes Elternteil wiederum als Kind + Eltern in die Datenbank mit einträgt.

Wenn ich jetzt also folgende Tabelle anlege:

Kind     Vater    Mutter

Kind1    Vater1   Mutter1
Vater1   Vater2   Mutter2
Mutter1  Vater3   Mutter3
Vater2   Vater22  Mutter22
Mutter2  Vater222 Mutter222
usw...

Jetzt möchte ich mittels PHP das Ganze aus meiner Datenbank abrufen und zwar so, dass ich einen Stammbaum mittels <table><?php ?></table> zeichnen kann.

<table width="200" border="0">
  <tr>
    <td rowspan="4"><?php echo $kind1() ?></td>
    <td rowspan="2"><?php echo $vater1() ?></td>
    <td><?php echo $vater2() ?></td>
  </tr>
  <tr>
    <td><?php echo $mutter2() ?></td>
  </tr>
  <tr>
    <td rowspan="2"><?php echo $mutter1() ?></td>
    <td><?php echo $vater3() ?></td>
  </tr>
  <tr>
    <td><?php echo $mutter3() ?></td>
  </tr>
</table>

Die echo Ausgaben hab ich in Funktionen ausgegeben wo ich bis zur Ersten noch gekommen bin:

function kind1()
{
    $kind1 = mysql_query ("SELECT kind FROM stammbaum WHERE kind = kind1");

$daten2 = mysql_num_rows ( $welpe );

echo $daten2 . "<br>";

for ($i = 1; $i <= $daten2; $i++)
    {
    $anzahl2 = mysql_fetch_row ($welpe);

foreach ($anzahl2 as $schluessel2 => $wert2)
 {
 echo "Schlüssel: " . $schluessel2 . " Wert: " . $wert2 . "<br>";
 }
 echo "<br>";
 }
    }

Ok die Lösung mit der Abfrage nach kind1 ist wahrscheinlich auch nicht die Beste, aber so könnte ich mir das bei einer Suchabfrage dann etwa vorstellen.

Jetzt möchte ich in der obigen Tabelle den Vater ausgeben, aber WIE? Ich kann zwar nochmal so eine Funktion einbauen und die halt dann einfach vater1() nennen, aber was mache ich wenn ich zb dann den Vater1 als Kind1 habe? In der SQL-Abfrage müsste ich dann ja auch direkt so ansprechen:

SELECT kind FROM stammbaum WHERE kind = vater1

So kann ich das jetzt zwar lösen und in die Tabelle eintragen, aber für jedes Elternteil ne neue Funktion und das dann nicht änderbar?

Ich weiß irgendwas kann so nicht stimmen... Ich hab auch schon überlegt, ob ich nicht 2 Tabellen anlege ( 1 x Eltern 1 x Kinder ) und die mittels einer Relationstabelle zu verknüpfen, was mir die Abfrage erleichtern würde.

Aber kann ich nicht einfach den Wert der bei der SQL-Abfrage rauskommt irgendwie in die 2te Funktion so einbauen, dass er mir nach diesem Ergebnis in der Datenbank einen anderen Wert sucht?

ZB:
SELECT kind FROM stammbaum WHERE WERT\_VOM\_kind\_VON\_ERGEBNIS\_VON\_FUNCTION\_kind1() = vater

So könnte ich dann auch praktisch irgendwie eine Schleife basteln, wo ich auch die Grosseltern, Urgrosseltern, usw. herausbekommen könnte, wenn der Wert jeweils wieder auf kind gesetzt wird?

Aber wie gesagt ich kenn mich ned aus und falls das alles Blödsinn ist gleich ein sorry vorweg ^^

Falls es doch geht pls help!

  1. Hi

    Kennst du PHPGedView?

    http://www.phpgedview.net/

    Gruß
    Uwe
    Portland, Oregon

    1. Hi

      Kennst du PHPGedView?

      http://www.phpgedview.net/

      Ja hab ich mir schon angeschaut, aber ich brauch des ganze nicht für Menschen sondern für Hunde ^^

      Ich muss die Stammbäume dann auch noch in gewisse Druckform bringen um sie für die Ahnentafeln verwenden zu können. Desweiteren sollten auch die Vereine selbstständig ihre Würfe + Ahnen eintragen können und das Ganze über die Dachverbandshomepage.

      Ausserdem brauch ich ja nur einen einfachen Stammbaum. Die Geschwister der Elterntiere zb interessieren mich hierbei schon wieder gar nicht. Allerdings ändert sich der Stammbaum schneller da ja Hunde max. 6 Jahre für die Zucht geeignet sind.

      Ich hab schon sowas ähnliches gefunden, aber die geben mir ja schlecht ihr Script *fg*

      Seite:  http://www.k9data.com/default.asp

      Suchabfrage-Beispiel: LUX Junior Champion Dewmist Sandalwood

      Hier kann man dann ganz bequem das Elterntier anklicken und man erhält einen "neuen" Stammbaum.

      1. Sry falsche Suchabfrage ^^

        Nur nach dem Namen suchen: Dewmist Sandalwood