<?php

/*				Programme :		consult_detail_corresp_cd_oeuvre_detail.php
				Description : 	Permet de visualiser les détails d'oeuvres rattachés à un cd
				et une oeuvre. Tous les détails de l'oeuvre apparaissent pour créer
				l'arboressence. Les détails qui ne sont pas rattachés au cd apparaissent en
				clair et en italique.

				On peut afficher tous les détails ou seulement ceux qui sont sur le cd
*/
echo "<body background='../images/fondnotes.jpg'>";
$id_corresp_cd_oeuvre=$_GET['id_corresp_cd_oeuvre'];
$id_oeuvre=$_GET['id_oeuvre'];
$id_cd=$_GET['id_cd'];
$type_affichage=$_GET['type_affichage'];


require "codbfile";

//On charge le nom du cd et celui de l'oeuvre
$sql="select nom_cd from cd where id_cd=$id_cd";
$result=mysql_query($sql)
		or die ("Impossible de charger le nom du cd.");
$ligne=mysql_fetch_array($result);
extract($ligne);

$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 la légende
echo "<table bgcolor='#E6E6E6' border='0' width='100%'>\n";
echo "<tr><td colspan='2'><b>Légende :</b></td><td rowspan='6' bgcolor='#EEF6FF'>
<div align='center'><h1>Détail de \"$nom_oeuvre\" sur le cd \"$nom_cd\"</h1>
</div>\n
</td></tr>\n
<tr><td><b>Détail :</b></td><td>Détail présent sur le cd</td></tr>\n
<tr><td><font color='#B4B6B4'><i>Détail :</i></font></td><td>Détail présent sur le cd</td></tr>\n";

echo "
<tr><td colspan='2'>Vous pouvez choisir votre type d'affichage</td></tr>
<tr><td colspan='2'><a href='consult_detail_corresp_cd_oeuvre_detail.php?id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre&id_cd=$id_cd&id_oeuvre=$id_oeuvre&type_affichage=tous'>Tous les détails</a></td></tr>
<tr><td colspan='2'><a href='consult_detail_corresp_cd_oeuvre_detail.php?id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre&id_cd=$id_cd&id_oeuvre=$id_oeuvre&type_affichage=utilise'>Uniquement les détails du cd</a></td></tr>
</table>\n
<hr>
";





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


switch ($type_affichage)
{

case "utilise":
{
	// 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


		//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 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"

			//On regarde si ce détail est dans la table corresp_cd_oeuvre_detail
			$sql="select id_corresp_cd_oeuvre_detail from corresp_cd_oeuvre_detail
			where id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre
			and id_detail_oeuvre=$id_detail_oeuvre";
			$result_detail=mysql_query($sql)
					or die ("Impossible de vérifier si ce détail est rattaché au cd.");

			$nb_ligne=mysql_num_rows($result_detail);
			if ($nb_ligne>0)
			{
				$ligne_detail=mysql_fetch_array($result_detail);
				extract($ligne_detail);

				echo "<b>$nom_detail</b>";

				//On regarde s'il y a des interprètes rattachés à ce détail
				$sql="select id_corresp_cd_oeuvre_detail_interprete
				from corresp_cd_oeuvre_detail_interprete
				where id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre
				and id_detail_oeuvre=$id_detail_oeuvre";
				$result_interprete=mysql_query($sql)
									or die ("Impossible de tester la présence d'interprète rattaché à ce détail.");
				$nb_ligne=mysql_num_rows($result_interprete);
				if ($nb_ligne>0)
				{ echo " <a href='consult_corresp_cd_oeuvre_detail_interprete.php?id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre&id_detail_oeuvre=$id_detail_oeuvre'
				 target='_blank'>voir les interprètes</a>";}

				echo "<br>";
			}


			$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
exit;
} // Fin du case utilisés
case "tous":
{
// 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


		//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





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>";

			//On regarde si ce détail est dans la table corresp_cd_oeuvre_detail
			$sql="select id_corresp_cd_oeuvre_detail from corresp_cd_oeuvre_detail
			where id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre
			and id_detail_oeuvre=$id_detail_oeuvre";
			$result_detail=mysql_query($sql)
					or die ("Impossible de vérifier si ce détail est rattaché au cd.");

			$nb_ligne=mysql_num_rows($result_detail);
			if ($nb_ligne>0)
			{


				echo "<b>$nom_detail</b>";
				//On regarde s'il y a des interprètes rattachés à ce détail
				$sql="select id_corresp_cd_oeuvre_detail_interprete
				from corresp_cd_oeuvre_detail_interprete
				where id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre
				and id_detail_oeuvre=$id_detail_oeuvre";
				$result_interprete=mysql_query($sql)
									or die ("Impossible de tester la présence d'interprète rattaché à ce détail.");
				$nb_ligne=mysql_num_rows($result_interprete);
				if ($nb_ligne>0)
				{ echo " <a href='consult_corresp_cd_oeuvre_detail_interprete.php?id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre&id_detail_oeuvre=$id_detail_oeuvre'
				 target='_blank'>voir les interprètes</a>";}

			}
			else
			{
				echo "<font color='#B4B6B4'><i>$nom_detail</i></font>";
			}

			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>";
exit;
}//Fin du case tous

default :
{
require "../admin/fonctions";
redirection ("consult_detail_corresp_cd_oeuvre_detail.php?id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre&id_cd=$id_cd&id_oeuvre=$id_oeuvre&type_affichage=utilise");
}
}
