Mailinglisten-Archive |
>Ich mochte eine Ahnentafel fur Hunde bis in die 4 Geneartion bauen, >ist auch nicht so schwer, aber ich brauche 30 Befehle dieser art : >(In jedem Datensatz der mySQL-Tabelle ist der Vater mit Verein und >Nummer, und die Mutter >mit Verein und Nummer angegeben) >verein_v = vereinnummer des Vaters >zbnr_v = nummer des Vaters >verein_m = vereinnummer der Mutter >zbnr_m = nummer der Mutter >$dog = mysql_fetch_array(mysql_query("select name, verein_v, zbnr_v, >verein_m, zbnr_m from df_ahnen >where verein='$verein' && zbnr='$nummer'")); >$dog1 = mysql_fetch_array(mysql_query("select name, verein_v, zbnr_v, >verein_m, zbnr_m from df_ahnen >where verein='$dog[verein_v]' && zbnr='$dog[zbnr_v]'")); [...] Hi Danny, Du suchst in zwei Feldern nach dem naechsten Hund (verein_v, zbnr_v bzw. das gleich mit Mutter). Warum uebergibst du eigentlich nicht die ID des Vaters und der Mutter? z.B.: ID_hund, ID_v, ID_m,[Restliche Daten des Hundes...] Den Verein und die Zuchtbuchnummer kannst du dann ueber joins ermitteln: z.B.: alle Urgrossvaeter.... Select d.name as nameurgrossvater .... from df_ahnen as a left join df_ahnen as b on a.ID_v = b.ID_hund left join df_ahnen as c on b.ID_v = c.ID_hund left join df_ahnen as d on c.ID_v = d.ID_hund [.....] Da kriegst du in zwei Querys alle Ahnen bis zur x-ten Generation. Du kannst das zwar auch mit zwei Feldern pro Tabelle machen, dauert aber logischerweise laenger. Den Select koennte man auch rekursiv erzeugen, da laesst sich dann ne function zusammenbasteln, die fuer jede beliebige Generationstiefe funzt. MFG Wolfgang
php::bar PHP Wiki - Listenarchive