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!