<?php

/*				Programme :		consult_detail_oeuvre_detail.php
				Description : 	Permet de visualiser les détails d'une oeuvre.
*/
echo "<body background='../images/fondnotes.jpg'>";
$id_corresp_cd_oeuvre=$_GET['id_corresp_cd_oeuvre'];
$id_oeuvre=$_GET['id_oeuvre'];

require "codbfile";

//On charge le de l'oeuvre

$sql="select nom_oeuvre from oeuvre where id_oeuvre=$id_oeuvre";
$result=mysql_query($sql)
		or die ("Impossible de charger le nom du cd.");
$ligne=mysql_fetch_array($result);
extract($ligne);

//On affiche l'entête de la page
echo "<div align='center'><h1>Détail de \"$nom_oeuvre\"</h1></div><hr>\n";



//************************************************************************************************
//************************************************************************************************

	// On récupère les données sur l'oeuvre

		$sql_oeuvre="select o.id_oeuvre, o.nom_oeuvre, c.nom_compositeur, c.prenom_compositeur
	from oeuvre o, compositeur c
	where o.id_compositeur = c.id_compositeur
	and o.id_oeuvre = '$id_oeuvre'
	order by nom_oeuvre";


		require "codbfile";
		$result=mysql_query($sql_oeuvre)
					or die ("Impossible de récupérer les information sur
					l'oeuvre et le compositeur");
		$ligne=mysql_fetch_array($result);
		extract($ligne);


		// On affiche le détail de l'oeuvre

		//On test la présence de détail
		$sql="select id_detail_oeuvre from detail_oeuvre
		      where id_oeuvre=$id_oeuvre";

require "codbfile";

		$result=mysql_query($sql)
				or die ("Impossible de tester la présence de détails dans cette oeuvre");
		$nb_ligne=mysql_num_rows($result);
		if ($nb_ligne<1) // Il n'y a aucun résultat
		{break;} // On arrête le programme
		else

		//On cherche le plus bas niveau de détail
		$sql="select max(niveau_detail_oeuvre) as niveau_detail_oeuvre from detail_oeuvre
		where id_oeuvre=$id_oeuvre";

		$result=mysql_query($sql)
			or die ("Impossible de récupérer le plus bas niveau de détail de l'oeuvre");
		$ligne=mysql_fetch_array($result);
		extract($ligne);
		$max_niveau_detail=$niveau_detail_oeuvre;


		//On contruit le début du tableau pour afficher les détails
		echo "<table align='left'>";

		//On affiche les détails


require "codbfile";


for ($i=1;$i<=$max_niveau_detail;$i++)
{
	If ($i==1)
	{	$sql="select * from detail_oeuvre where id_oeuvre='$id_oeuvre'
		and niveau_detail_oeuvre='$i'
		order by nom_detail";
	}
	else
	{	$j=$i-1;
		$sql="select * from detail_oeuvre where id_oeuvre='$id_oeuvre'
		and niveau_detail_oeuvre='$i' and id_detail_oeuvre_sup=$id_detail_oeuvre_traite[$j]
		order by nom_detail";
	}

	$result=mysql_query($sql)
		or die ("Impposible d'exécuter le chargement des données");


	while($ligne=mysql_fetch_array($result))
	{	extract($ligne);
		if ($nom_detail>$nom_detail_oeuvre_traite[$i])
		{	$niveau_detail_cree=$i+1; //Permet de déterminer le niveau de détail du "sous-détail"
			echo "<tr><td colspan='$i'></td><td>";

			echo "$nom_detail";

			echo"</td></tr>\n";

			$nom_detail_oeuvre_traite[$i]=$nom_detail;
			$id_detail_oeuvre_traite[$i]=$id_detail_oeuvre;

			//On regarde s'il y a un détail de niveau inférieur
			$sql="select id_detail_oeuvre from detail_oeuvre
					where id_oeuvre=$id_oeuvre
					and id_detail_oeuvre_sup=$id_detail_oeuvre";
			$result_test=mysql_query($sql)
						or die ("Impossible de tester s'il y a un niveau inférieur.");
			$nb_ligne=mysql_num_rows($result_test);

			if ($nb_ligne<>0)
			{	//Il y a un détail de niveau inférieur lié à ce détail
				$niveau_inf="oui";
				break;
			}
			else
			{ $niveau_inf="non";
			}
		}

	} //Fin du while

	if ($niveau_inf=="non")
	{
		$i=$i-2; //Pour traiter le niveau inférieur après le +1 de la boucle "For"
		//echo "$i<br>";
		if ($i<0)
		{	break;
		}

	}
} // Fin du for

echo "</table></body>";
