Script php pour fermeture automatique des balises html

Bonjour,
je travaille actuellement sur un script php pour afficher un arbre geneaologique.
Vu que c'est compliqué je me suis aidé du code html/css de cet lien :
http://thecodeplayer.com/walkthrough/css3-family-tree
ce que je fais c'est de reproduire l'architecture html de ce code a partir d'un script php et ainsi pouvoir mettre a jour l'arbre a partir d'une base de données.
mais l'affichage est desordonné car mon script ne parvient pas a fermer toutes les balises(sucessions de ul et de li). je voudrais savoir s'il existe un script permettant de parcourir une page et refermer toutes les balises non fermées.... ou si vous avez d'autres solutions a me proposer, je suis tout ouie... merci.

3 réponses

  1. Modérateur
    Bonjour,


    mais l'affichage est desordonné car mon script ne parvient pas a fermer toutes les balises(sucessions de ul et de li)

    Le plus simple serait que tu nous montres ton code qu'on essaye de comprendre ce qui y cloche.

    **** Attention ****
    Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    .
    1. voici mon code source
      Notez que j'essaye de reproduire l'architecture du lien precedement donné car j'utilise leur fichier css.

      <?php
      	include('MembreManager.php');
      	include('Membre.php');
      	//ouverture d'une connexion a la base de données 
      	$bdd = new PDO('mysql:host=127.0.0.1;dbname=hounsinou', 'root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
      	//recuperation du plus haut ascendant
      	$manager = new MembreManager($bdd);
      	$membre = $manager->trouverLeParent(0);//
      	
      	//A partir de l'ancetre, je deroule mon script pour trouver et afficher les descendants
      	//le sript principal
      	echo '<ul><li><a href="#">'.$membre->nomMembre().'<br />'.$membre->prenomMembre().'</a>';
      	arbreGenalogique($membre->idMembre(), $manager);
      	echo '</li></ul>';//le script principal
      	
      	//fonction recursive pour gerer l'arborescence
      	function arbreGenalogique($ascendant, $manager)
      	{
      		$descendants = $manager->liste($ascendant);//retourne les enfants a partir de l'id du parent
      		foreach($descendants as $cle => $valeur)
      		{
      			$verificationDernier = $manager->liste($valeur->idMembre());//pour verifier si l'individu a une descendance
      			//si il possede une descendance...
      			if(!empty($verificationDernier))
      			{
      				echo '<ul><li><a href="#">'.$valeur->nomMembre().'<br />'.$valeur->prenomMembre().'</a>';
      			}
      			//si il ne possede pas de descendance
      			else
      			{
      				//si c'est le premier enfant
      				if($cle == 0)
      				{
      					//si c'est le seul enfant
      					if($cle == sizeof($descendants) - 1)
      					{
      						echo '<ul><li><a href="#">'.$valeur->nomMembre().'<br />'.$valeur->prenomMembre().'</a></li>
      								</ul>';
      					}
      					//si ce n'est pas le seul enfant
      					else
      					{
      						echo '<ul><li><a href="#">'.$valeur->nomMembre().'<br />'.$valeur->prenomMembre().'</a></li>';
      					}
      				}
      				//si ce n'est pas le premier enfant
      				else
      				{
      					//si c'est le dernier enfant 
      					if($cle == sizeof($descendants) - 1)
      					{
      						echo '<li><a href="#">'.$valeur->nomMembre().'<br />'.$valeur->prenomMembre().'</a></li>
      								</ul>';
      					}
      					//si ce n'est pas le dernier enfant
      					else
      					{
      						echo '<li><a href="#">'.$valeur->nomMembre().'<br />'.$valeur->prenomMembre().'</a></li>';
      					}
      				}
      			}
      			arbreGenalogique($valeur->idMembre(), $manager);//recursivité	
      		}
      	}	
      ?>