j'essaye de generer un arbre genealogique ascendant d'une personne $id
comment je pourrais faire pour faire la meme chose que le script d'en bas mais sous forme de fonction ou de boucle.
Le script plus bas cherche les parents de $id puis les parents des parents etc..
ici c'est un exemple sur 4 generations mais je souhaiterais un script qui chercher les parents puis les parents des parents, etc. jusqu'a qu'il n'y en ai plus ($id_pere == '0' et $id_mere =='0'), puis que ca ma l'affiche des plus anciens jusqu'a $id organisé comme un vrai arbre genealogique, et que ca affiche toutes les generations enregistrées au-dessus de $id (qu'il y en ai 2 ou 8 ou x)
Voila si qqn peux m'aider ca serait cool car la je sui svraiment pret a me jeter par la fenetre; j'ai essayé avec une fonction qui cherche tout les personnes de l'arbre elle fonctionne mais elle me les met pas dans l'ordre et apres j'arrive pas a faire un affichage correct voici la fonction :
function SelectByID($id_search) {
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$id_search'");
if($data = mysql_fetch_array($sql)){
$nom = $data['nom'];
$prenom = $data['prenom'];
$id_pere = $data['id_parent_pere'];
$id_mere = $data['id_parent_mere'];
}
echo $nom;
echo "<br />";
echo $prenom;
echo "<p />";
echo "<hr width='50%' align='center'>";
//echo "<p />id_pere : ".$id_pere."<br />id_mere : ".$id_mere."<p />";
if(($id_pere != '0')&&($id_pere != '')){
$donnees = SelectByID($id_pere);
}
if(($id_mere != '0')&&($id_pere != '')){
$donnees = SelectByID($id_mere);
}
}
et voici le script (long) pour 4 generations
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$id'");
if($data = mysql_fetch_array($sql)){
$idm1 = $data['num'];
$idm2 = $data['id_parent_pere'];
$idm3 = $data['id_parent_mere'];
}
$sql2 = mysql_query("SELECT * FROM FA_personne WHERE num='$idm2'");
if($data2 = mysql_fetch_array($sql2)){
$idm4 = $data2['id_parent_pere'];
$idm5 = $data2['id_parent_mere'];
}
$sql3 = mysql_query("SELECT * FROM FA_personne WHERE num='$idm3'");
if($data3 = mysql_fetch_array($sql3)){
$idm6 = $data3['id_parent_pere'];
$idm7 = $data3['id_parent_mere'];
}
$sql4 = mysql_query("SELECT * FROM FA_personne WHERE num='$idm4'");
if($data4 = mysql_fetch_array($sql4)){
$idm8 = $data4['id_parent_pere'];
$idm9 = $data4['id_parent_mere'];
}
$sql5 = mysql_query("SELECT * FROM FA_personne WHERE num='$idm5'");
if($data5 = mysql_fetch_array($sql5)){
$idm10 = $data5['id_parent_pere'];
$idm11 = $data5['id_parent_mere'];
}
$sql6 = mysql_query("SELECT * FROM FA_personne WHERE num='$idm6'");
if($data6 = mysql_fetch_array($sql6)){
$idm12 = $data6['id_parent_pere'];
$idm13 = $data6['id_parent_mere'];
}
$sql7 = mysql_query("SELECT * FROM FA_personne WHERE num='$idm7'");
if($data7 = mysql_fetch_array($sql7)){
$idm14 = $data7['id_parent_pere'];
$idm15 = $data7['id_parent_mere'];
}
echo "<table border='0' align='center' width='95%' bordercolor='#000000' cellpadding='0' cellspacing='0'>
<tr height='100'>
<td align='center' width='12%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm8'");
if($data = mysql_fetch_array($sql)){
$nom8 = $data['nom'];
$prenom8 = $data['prenom'];
echo $nom8."<br />".$prenom8;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center' width='13%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm9'");
if($data = mysql_fetch_array($sql)){
$nom9 = $data['nom'];
$prenom9 = $data['prenom'];
echo $nom9."<br />".$prenom9;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center' width='12%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm10'");
if($data = mysql_fetch_array($sql)){
$nom10 = $data['nom'];
$prenom10 = $data['prenom'];
echo $nom10."<br />".$prenom10;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center' width='13%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm11'");
if($data = mysql_fetch_array($sql)){
$nom11 = $data['nom'];
$prenom11 = $data['prenom'];
echo $nom11."<br />".$prenom11;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center' width='12%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm12'");
if($data = mysql_fetch_array($sql)){
$nom12 = $data['nom'];
$prenom12 = $data['prenom'];
echo $nom12."<br />".$prenom12;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center' width='13%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm13'");
if($data = mysql_fetch_array($sql)){
$nom13 = $data['nom'];
$prenom13 = $data['prenom'];
echo $nom13."<br />".$prenom13;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center' width='12%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm14'");
if($data = mysql_fetch_array($sql)){
$nom14 = $data['nom'];
$prenom14 = $data['prenom'];
echo $nom14."<br />".$prenom14;
}
else{
echo "????? ";
}
echo "
</td>
<td align='center'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm15'");
if($data = mysql_fetch_array($sql)){
$nom15 = $data['nom'];
$prenom15 = $data['prenom'];
echo $nom15."<br />".$prenom15;
}
else{
echo "????? ";
}
echo "
</td>
</tr>
<tr height='100'>
<td colspan='2' align='center' width='25%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm4'");
if($data = mysql_fetch_array($sql)){
$nom4 = $data['nom'];
$prenom4 = $data['prenom'];
echo $nom4."<br />".$prenom4;
}
else{
echo "????? ";
}
echo "
</td>
<td colspan='2' align='center' width='25%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm5'");
if($data = mysql_fetch_array($sql)){
$nom5 = $data['nom'];
$prenom5 = $data['prenom'];
echo $nom5."<br />".$prenom5;
}
else{
echo "????? ";
}
echo "
</td>
<td colspan='2' align='center' width='25%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm6'");
if($data = mysql_fetch_array($sql)){
$nom6 = $data['nom'];
$prenom6 = $data['prenom'];
echo $nom6."<br />".$prenom6;
}
else{
echo "????? ";
}
echo "
</td>
<td colspan='2' align='center'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm7'");
if($data = mysql_fetch_array($sql)){
$nom7 = $data['nom'];
$prenom7 = $data['prenom'];
echo $nom7."<br />".$prenom7;
}
else{
echo "????? ";
}
echo "
</td>
</tr>
<tr height='100'>
<td colspan='4' align='center' width='50%'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm2'");
if($data = mysql_fetch_array($sql)){
$nom2 = $data['nom'];
$prenom2 = $data['prenom'];
echo $nom2."<br />".$prenom2;
}
else{
echo "????? ";
}
echo "
</td>
<td colspan='4' align='center'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm3'");
if($data = mysql_fetch_array($sql)){
$nom3 = $data['nom'];
$prenom3 = $data['prenom'];
echo $nom3."<br />".$prenom3;
}
else{
echo "????? ";
}
echo "
</td>
</tr>
<tr height='100'>
<td colspan='8' align='center'>";
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$idm1'");
if($data = mysql_fetch_array($sql)){
$nom1 = $data['nom'];
$prenom1 = $data['prenom'];
}
echo $nom1."<br />".$prenom1."
</td>
</tr>
</table><p />";
joebuz