'lut tout le monde,
voila je suis en train de faire un essai de genealogie.
J'ai une table FA_personne où dedans sont enregistré tout les membre.
Pour chaque membre il ya les infos qui le concerne, un id du membre, un id du pere et un id de la mere
num --> $id
id_parent_pere --> $id_pere
id_parent_mere --> $id_mere
Je cherche a générer l'arbre ascendant d'une personne
je cherche donc $id_pere et $id_mere ou num=$id
et pour chaque personne trouvée je recommence.
J'ai fait un bout de script qui fonctionne a peu pres le probleme c'est que cela affiche uniquement l'arbre ascendant des peres ou des meres mais pas les deux !!
j'aurais besoin d'un petit coup de main.
Ps pour le script je me complique surement et il doit y avoir plus simple, mais bon c'est tout ce que j'ai réussi a faire
voici le script :
$id_search2 = $id;
$i5 = 0;
$i = 0;
$i2 = 1;
$i3 = 0;
$i4 = 1;
$n=0;
$sql4 = mysql_query("SELECT * FROM FA_personne WHERE num='$id_search2'");
if($data4 = mysql_fetch_array($sql4)){
$i6 = 1;
echo "<table border='0' width='95%' align='center'>";
echo "<tr><td colspan='2' align='center'>".$nom." ".$prenom." (".$id.")<br /></td></tr>";
while($i6 > $i5){
while(($i2 > $i)||($i4 > $i3)){
$id_search = $id_search2;
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$id_search'");
if($data = mysql_fetch_array($sql)){
$id_pere = $data['id_parent_pere'];
$id_mere = $data['id_parent_mere'];
$nom = $data['nom'];
$prenom = $data['prenom'];
$i5=++$i5;
$i6=$i5+1;
//echo "<tr><td colspan='2' align='center'>".$nom." ".$prenom." (".$id.")<br /></td></tr>";
echo "<td width='50%' align='center'><table border='1' width='100%' align='center'><tr>";
if($id_pere != '0'){
$sql2 = mysql_query("SELECT * FROM FA_personne WHERE num='$id_pere'");
if($data2 = mysql_fetch_array($sql2)){
$id_search2 = $id_pere;
$id_pere = $data2['id_parent_pere'];
$nom2 = $data2['nom'];
$prenom2 = $data2['prenom'];
$n=++$n;
echo "<td align='center'>Niveau : ".$n."<br />".$nom2." ".$prenom2." (".$id_search2.") <br /></td>";
}
}
else{
//echo "<p />Fin de l'arbre père<p />";
$i = $i2;
}
echo "<p />";
echo "</tr></table></td><td width='50%' align='center'><table border='1' width='100%' align='center'><tr>";
if($id_mere != '0'){
$sql3 = mysql_query("SELECT * FROM FA_personne WHERE num='$id_mere'");
if($data3 = mysql_fetch_array($sql3)){
$id_search2 = $id_mere;
$id_mere = $data3['id_parent_mere'];
$nom3 = $data3['nom'];
$prenom3 = $data3['prenom'];
echo "<td align='center'>Niveau : ".$n."<br />".$nom3." ".$prenom3." (".$id_search2.") <br /></td>";
}
}
else{
//echo "<p />Fin de l'arbre mère<p />";
$i3 = $i4;
}
echo "</tr></table></td></tr>";
}
else{
echo "<p />Erreur, la personne demandée est introuvable !<p />";
}
}
if(($i3 == $i4)&&($i2 == $i)){
$i5 = $i6;
echo "<p />C'est fini !<p />";
}
}
echo "</table><p />";
}
else{
echo "<p />la personne demandée est introuvable !<p />";
}
joebuz