Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : besoin d'aide boucle [ Archives / AU SECOURS !!! ] (joebuz)

vendredi 28 avril 2006 à 19:24:36 | besoin d'aide boucle

joebuz

Membre Club


'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


vendredi 28 avril 2006 à 20:58:06 | Re : besoin d'aide boucle

FhX

Fait une fonction récursive pour ca !

samedi 29 avril 2006 à 02:22:55 | Re : besoin d'aide boucle

joebuz

Membre Club
euh...ouai si tu le dis !!

le seul soucis c'est que je sais pas faire les fonctions !!

joebuz


samedi 29 avril 2006 à 10:33:45 | Re : besoin d'aide boucle

rclsilver02

Membre Club
pour l'aide sur les fonction  : [ Lien ]

sinon, une fonction récursive, c'est une fonction qui s'appelle elle meme... mais... apprends avant a utiliser les fonction, ça te sera utile.

samedi 29 avril 2006 à 15:28:21 | Re : besoin d'aide boucle

joebuz

Membre Club

ouai ca n'a pas l'air simple a faire les fonctions !!

est-ce que qqn aurait un petit exemple simple pour comprendre un peu comment qu'ca fonctionne svp !?

joebuz


samedi 29 avril 2006 à 16:37:40 | Re : besoin d'aide boucle

rclsilver02

Membre Club
<?php

function plop($pouet)
{
 echo('$pouet=' . $pouet . '<br />' . "\n");
}

plop('mif'); // affiche $pouet=mif

?>

voila :o

mardi 2 mai 2006 à 11:42:01 | Re : besoin d'aide boucle

joebuz

Membre Club

c bon j'ai ma fonction

function plop($id)
{
echo('$id = ' . $id . '<br />' . "\n");
$sql = mysql_query("SELECT * FROM FA_personne WHERE num='$id'");
 if($data = mysql_fetch_array($sql)){
 $id_pere = $data['id_parent_pere'];
 $id_mere = $data['id_parent_mere'];
 $nom = $data['nom'];
 $prenom = $data['prenom'];
 }
echo "<p />id_pere : ".$id_pere."<br />id_mere : ".$id_mere."<p />";

$sql2 = mysql_query("SELECT * FROM FA_personne WHERE num='$id_pere'");
 if($data2 = mysql_fetch_array($sql2)){
 $nomp = $data2['nom'];
 $prenomp = $data2['prenom'];
 }

$sql3 = mysql_query("SELECT * FROM FA_personne WHERE num='$id_mere'");
 if($data3 = mysql_fetch_array($sql3)){
 $nomm = $data3['nom'];
 $prenomm = $data3['prenom'];
 }

echo "<p /><br /><p /><b>".$nom."</b> ".$prenom."<br />Pere : ".$nomp." ".$prenomp."<br /> Mere : ".$nomm." ".$prenomm."<p />";

}


mais comment je fais pour qu'elle soit recursive, il faut rappeller la fonction pour id = id_pere et id= id_mere mais je sais^pas comment faire !?

joebuz


mardi 2 mai 2006 à 12:21:44 | Re : besoin d'aide boucle

FhX

function SelectByID($id) {

$sql = mysql_query('SELECT tes_champs FROM FA_personne WHERE num = '.$id);
return mysql_fetch_array($sql);

}

Et tu appèles ta fonction ainsi :
$donnees_pere = SelectByID($id_pere);
$donnees_mere = SelectByID($id_mere);

// echo $donnees_pere['nom'];
// echo $donnees_mere['prenom'];

Voila :)

mercredi 3 mai 2006 à 00:25:45 | Re : besoin d'aide boucle

joebuz

Membre Club

ok ca marche merki bcp a tous !!!!

maintenant faut juste que je trouve a organiser tout ca sous forme de pyramide !

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);
  }
 }


 $donnees = SelectByID($id);

joebuz




Cette discussion est classé dans : mysql, id, echo, pere, mere


Répondre à ce message

Sujets en rapport avec ce message

Souci dans mon tableau [ par slhuilli ] Bonjour,je cherche la faille dans ce bout de code depuis p$ls jours sans trouver. Qu'elqu'un pourra peut être maider et m'expliquer . En fait, je n MySQL id? [ par Linuss ] Bonjour à tous, Voilà, lorsque j'essaie de faire un lien qui contient l'id (qui existe au ca sou quelqu'un poserait la question :) d'un tuto, je n'y a Besoin Aide Formulaire [ par Dexterage ] bonjour a tous :)voila jai un tit soucis avec ma page! Le but de la page étant de faire une lister d'évènement, en fonction des lieux. Il y a une tabl Mysql erreur, mais où ? [ par Tilix ] Bonjour,Je voudrais savoir où est l'erreur dans ceci :while($data = mysql_fetch_assoc($req))     {   if ('!'.$data['id'].'') { echo '(0)'; }    else { Pagination en php URGENT [ par hoodlum ] Tout d'abord je suis debutant en php et J'ai un petit pb,jarrive pas a trouver l'erreur dans mon script de pagination pour une requete SQL qui retourn AU SECOUR [ par hoodlum ] voici mon script:   include("heads.inc.php");      $req=$_SERVER['REQUEST_METHOD'];     if($req=="POST")       $cho etre perdu [ par hoodlum ] contrairement a tous les message ke g pu laissé sur le forum ;G trouvé le probleme .mais je c pa pkoi.voici mon :   include("heads.inc.php");      $re UNE BOUCLE infernal HELP ME!!! [ par hoodlum ] Le problemes c ke o 2eme passage par pasage a l'url le script arrete d'etre executé a partir de la ou g mis le pointillé car le while n'est pas execut Authentification [ par Alricaus ] Bonjour à tous. J'aimerai réaliser un code en php, utilisant la base de donnée mysql, pour faire que lorsqu'une personne s'identifie sur l'index en ht mysql [ par jnbrunet ] Salut, Je suis en train de programmé une partie admin pour un forum. Je permets au admin de blocker une discution en entrant le # de la discution dans


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.