<?php
require "control_auth";
/* 		Nom du programme : admin_cd.php
		Description : Permet d'administrer la table des Cd :
			- Créer de nouveaux cd par l'intermédiaire d'un
			formulaire.
			- Supprimer des cd : Afficher la liste des cd
			et supprime le cd sélectionné.
			 - Modifier un cd : Afficher la liste des cd,
			 puis afficher les infos du cd sélectionné
			 dans un formulaire pour pouvoir les modifier et les
			 enregistrer dans la table.
*/
?>
<html>
<head>
<title>Administration des cd</title>
</head>
<body>
<h1 align="center">Administration des cd</h1><hr>

<?php
/* 		On fait le test pour savoir l'action choisie :
		- créer (new)
			* form : affiche le formulaire
			* sql : enregistre les données
		- supprimer (del)
			* form : Afiche une liste déroulante des cd
			* sql : supprime le cd
		- modifier (edit)
			* list : Affiche une liste déroulante des cd pour choisir celui à modifier
			* form : Affiche le formulaire pour modifier les données
			* sql : Enregistre les modifications
*/

require ("fonctions");

$action=$_GET['action'];

Switch ($action)
{
	case ("new_form"):    // On veut créer une nouveau cd
	{	echo "<div align='center'>Vous pouvez saisir les informations du cd
		dans le formulaire ci-dessous et les sauvegarder en cliquant
		sur le bouton \"Enregistrer\".</div><p>";
		// On affiche le formulaire dans un tableau

		$cible_action="new_sql";   // pour indiquer l'action du formulaire
		require "admin_cd.form";

		exit();
	}
	case ("new_sql"):	// On enregistre les données dans la table cd
	{	$nom_cd=$_POST['nom_cd'];
		$photo_cd=$_POST['photo_cd'];
		$commentaire_cd=$_POST['commentaire_cd'];
		$id_marque=$_POST['id_marque'];
		$numero_cd=$_POST['numero_cd'];
		$nombre_cd=$_POST['nombre_cd'];
		$go_to_edit=$_POST['go_to_edit'];
		$date_avant_derniere_ecoute_cd = $_POST['date_avant_derniere_ecoute_cd'];
		$date_derniere_ecoute_cd=$_POST['date_derniere_ecoute_cd'];

		// Requête pour ajouter le cd dans la table cd
		$sql="insert into cd (nom_cd, photo_cd, commentaire_cd, id_marque, numero_cd, nombre_cd,date_avant_derniere_ecoute_cd, date_derniere_ecoute_cd)
				values (\"$nom_cd\", \"$photo_cd\", \"$commentaire_cd\", '$id_marque', \"$numero_cd\", \"$nombre_cd\",
				'$date_avant_derniere_ecoute_cd', '$date_derniere_ecoute_cd')";


		// On se connecte à la base pour exécuter la requête

		require "codbfile";

		// On exécute la requête pour mettre à jour la table cd

		$result = mysql_query($sql)
					or die ("Impossible d'ajouter le nouveau CD dans la base de données.");

		//On teste vers quelle page on doit rediriger
		if ($go_to_edit=="oui")
		{
			//On récupère l'id_cd du cd créé
			$sql="select max(id_cd) as id_cd from cd
			where nom_cd='$nom_cd'";
			$result=mysql_query($sql)
				or die ("Impossible de récupérer l'id_cd du cd créé.");
			$ligne=mysql_fetch_array($result);
			extract($ligne);
			//On redirige vers l'édition du cd
			redirection ("admin_cd.php?action=edit_form&id_cd=$id_cd");

		}
		else
		{
		// Redirection vers index_admin.php
	        redirection("index_admin.php");
		}

		exit ();
	}
	case ("del_form"): // On crée une liste déroulante des cd pour
	{					// pouvoir supprimer le cd sélectionné.

		echo "<div align='center'>Choisissez dans la liste le cd que vous souhaitez <b><font color='#FB0B03'>supprimer</font></b></div><p><p></p></p>\n";
		// On se connecte à la base pour exécuter la requête

		require "codbfile";

		// On exécute la requête

		$sql="select  id_cd, nom_cd, numero_cd from cd order by nom_cd";
		$result=mysql_query($sql)
				or die ("Impossible de charger la liste des cd");

		// on crée un tableau pour le formulaire
		echo "<table align='center'><form action='admin_cd.php?action=del_sql' method='post'>\n
				<tr><td>Cd : </td>\n
					<td><select name='id_cd'>\n";
							while ($ligne = mysql_fetch_array($result))
							{	extract($ligne);
								echo "<option value='$id_cd'>$nom_cd, $numero_cd</option>\n";
							}
					echo "</select></td>\n

				</tr>\n
				<tr><td colspan='2' align='right'><input type='submit' value='Supprimer'></td></tr>

		</form></table>\n";
		exit();
	}
	case ("del_sql"):  // On supprime les données de la table cd, corresp_cd_oeuvre et corresp_cd_oeuvre_detail
	{	$id_cd=$_POST['id_cd'];
		$sql="delete from cd where id_cd='$id_cd'";


		// On se connecte à la base pour exécuter la requête

		require "codbfile";

		// On exécute la requête

		$result = mysql_query($sql)
					or die ("Impossible de supprimer le cd de la base de données");

		// Faire un lien vers le programme ou la fonction qui
		//		- supprime les coresp_cd_oeuvre qui n'ont plus de cd
		//		- supprime les corresp_cd_oeuvre_detail qui n'ont plus de corresp_cd_oeuvre

		//On supprime les ligne de la table corresp_cd_oeuvre
		$sql="delete from corresp_cd_oeuvre where id_cd=$id_cd";
		$result=mysql_query($sql)
				or die ("Impossible de supprimer les lignes de la table corresp_cd_oeuvre.");

		//On supprime les lignes de la table corresp_cd_oeuvre_detail
		purge_corresp_cd_oeuvre_detail();

		// Redirection vers index_admin.php
	        redirection("index_admin.php");

		exit();
	}
	case ("edit_form_select"): //On affiche un formulaire permettant ensuite d'afficher une liste de cd
	{
	//On affiche le formulaire
	echo "
	<form action='admin_cd.php?action=edit_list' method='POST'>\n
	<table align='center' width='90%'>\n
	<tr align='center' bgcolor='#328FC9'><td><font color='#FFFFFF'>Recherche d'un cd</font></td></tr>\n
	<tr align='center' bgcolor='#E6E6E6'><td>Le nom du cd contient : <input type='text' name='filtre_form'>\n
	<input type='submit' value='Rechercher'></td></tr>\n
	</table></form>\n";
	exit();
	}
	
	case ("edit_list"): // On affiche la liste des cd
	{ 		
	$filtre_form=$_POST['filtre_form'];
	
	//On charge la liste des cd correspondants
	$sql="select id_cd, nom_cd, numero_cd from cd 
		where nom_cd like '%$filtre_form%'
		order by nom_cd";
	// On se connecte à la base pour exécuter la requête

		require "codbfile";

	// On exécute la requête

	
		$result=mysql_query($sql)
				or die ("Impossible de charger la liste des cd");

		//On affiche la liste dans un tableau
		echo "<table align='center'>
		<tr><td colspan='2' align='center' bgcolor='#328FC9'><FONT color='white'>Liste des cd</FONT></td></tr>\n";
		$nb_ligne=mysql_num_rows($result);
		if ($nb_ligne==0)
		{
			echo "<tr><td colspan='2'>Il n'y a aucun cd correspondant à votre sélection.</td></tr>";
		}
		else
		{
			parametres_generaux();
			while ($ligne=mysql_fetch_array($result))
			{
				extract ($ligne);
				if ($bgcolor==$bgcolor_impaire)
				{ $bgcolor=$bgcolor_paire; }
				else
				{ $bgcolor=$bgcolor_impaire;}
			
				echo "
				<tr bgcolor='$bgcolor'>
				<td><a href='admin_cd.php?action=edit_form&id_cd=$id_cd'>$nom_cd</td>
				<td>$numero_cd</td>
				</tr>\n";
			}
			echo "</table>";
		}
		exit();
	}
	case ("edit_form"): // On affiche un formulaire pour modifier les données
	{
		if (@$_GET['id_cd']=="")
		{$id_cd=$_POST['id_cd'];}
		else
		{$id_cd=$_GET['id_cd'];}

				echo "<div align='center'>Utilisez le formulaire suivant pour modifier les informations</div><p></p>\n";
		// On se connecte à la base pour exécuter la requête

		require "codbfile";

		// On exécute la reqête
		$sql="select  * from cd where id_cd=$id_cd";
		
		$result=mysql_query($sql)
				or die ("Impossible de charger les informations concernant le cd.");

		$ligne=mysql_fetch_array($result);
		extract($ligne);

		// On affiche les données dans un formulaire

                $cible_action="edit_sql";         // Pour compléter l'action du formulaire

		// On affiche le formulaire pour modifier les infos du cd
		require "admin_cd.form";

		//On affiche un formulaire permettant de modifier les oeuvres attachées au cd
		//Ce formulaire n'est pas accessible depuis la création du cd car il faut que
		//l'id_cd soit créé.
		echo "<b>Voici la liste des oeuvres rattachées à ce cd :</b><p>\n";
		//On charge la liste des oeuvres rattachées au cd
		$sql="select c.id_corresp_cd_oeuvre, c.id_oeuvre, o.nom_oeuvre, o.classification_oeuvre, comp.nom_compositeur,
		comp.prenom_compositeur, t.nom_type_oeuvre from corresp_cd_oeuvre c, oeuvre o, compositeur comp, type_oeuvre t
    			where c.id_cd=$id_cd
				and o.id_compositeur=comp.id_compositeur
				and o.id_type_oeuvre=t.id_type_oeuvre
    			and c.id_oeuvre=o.id_oeuvre
				order by nom_compositeur, prenom_compositeur, nom_type_oeuvre, classification_oeuvre";
		$result=mysql_query($sql)
				or die("Impossible de charger la liste des oeuvres rattachées à cd.<br>$sql");

		$nb_ligne=mysql_num_rows($result);
		$liste_oeuvre_rattachee="0";
		// On met "0" car cet id n'existe pas et celà permet que la liste ne
		// soit jamais vide et évite l'erreur dans la requette pour charger la liste
		// des oeuvres non rattachées.
		for ($i=1;$i<=$nb_ligne;$i++)
		{
			$ligne=mysql_fetch_array($result);
			extract ($ligne);
			echo "
			$nom_compositeur $prenom_compositeur : $nom_type_oeuvre : ($classification_oeuvre)
			<a href='admin_corresp_cd_oeuvre_detail.php?action=show&id_oeuvre=$id_oeuvre&id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre'>$nom_oeuvre</a>";



			echo"&nbsp;<a href='admin_corresp_cd_oeuvre.php?action=del&id_cd=$id_cd&id_oeuvre=$id_oeuvre'><img src='../images/button_drop.png' border='0'></a><br>";
			$liste_oeuvre_rattachee=$liste_oeuvre_rattachee.$id_oeuvre;
			if ($i<$nb_ligne) {$liste_oeuvre_rattachee=$liste_oeuvre_rattachee.",";}
		}

	//#############################################################################################################

	//On affiche un formulaire permettant de sélectionner une liste d'oeuvre
		echo "<div align='center'><h3>Veuillez entrer vos critères de sélection et cliquez sur
		 \"Rechercher\"</h3></div><hr>\n
		 <table aligne='center'>

		<form action='admin_corresp_cd_oeuvre.php?action=new_liste' method='post'>
		<input type='hidden' name='id_cd' value='$id_cd'>
		<tr bgcolor='#328FC9'><td>Nom de l'oeuvre</td><td>Compositeur</td><td>Classification</td><td>Type d'oeuvre</td></tr>\n
		<tr><td><input type='text' name='nom_oeuvre' size='20'></td>
		<td><input type='text' name='compositeur' size='20'></td>
		<td><input type='text' name='classification_oeuvre' size='20'></td>
		<td><select name='id_type_oeuvre'>\n
		<option value='%' selected>Tous les types</option>";
		//On charge la liste des classification
		$sql="select id_type_oeuvre, nom_type_oeuvre from type_oeuvre
		order by nom_type_oeuvre";
		$result=mysql_query($sql) or die ("Impossible de charger la liste des types d'oeuvre.");
		while ($ligne=mysql_fetch_array($result))
		{
			extract($ligne);
			echo "<option value='$id_type_oeuvre'>$nom_type_oeuvre</option>\n";

		}
		echo "</select></td></tr>
		<tr><td colspan='4' align='center'><input type='submit' value='Rechercher'></td></tr>
		</form></table>";

	//#############################################################################################################



		echo "<hr>";

		// Formulaire permettant d'administrer les interprètes rattachés au cd
		echo "<b>Voici la liste des interprètes rattaché(e)s aux oeuvres de ce cd :</b><p>";

		//On recharge la liste des oeuvres
		$sql="select o.id_oeuvre, o.nom_oeuvre, o.classification_oeuvre, co.id_corresp_cd_oeuvre, co.numero_cd, t.nom_tonalite from oeuvre o, corresp_cd_oeuvre co, tonalite t
			where o.id_oeuvre in ($liste_oeuvre_rattachee)
			and co.id_oeuvre=o.id_oeuvre
			and t.id_tonalite=o.id_tonalite
			and co.id_cd=$id_cd";

		$result_oeuvre=mysql_query($sql);
		$nb_ligne=mysql_num_rows($result);

		if ($nb_ligne==0)
		{
			echo "Il n'y a aucune oeuvre rattachée à ce cd.";
			exit();
		}
		else
		{
			while ($ligne=mysql_fetch_array($result_oeuvre))
			{
				extract ($ligne);
				echo "<p><font size='+1'><b>$nom_oeuvre </font><i><font color='#A4AAA4'>($classification_oeuvre) en $nom_tonalite</i></b></font> ";
				if ($numero_cd<>"") echo "(cd $numero_cd)&nbsp;";
				echo "<a href='duplique_corresp_cd_oeuvre_interprete.php?id_cd=$id_cd&id_oeuvre=$id_oeuvre&id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre' target='_blank'>Dupliquer les interprètes</a><br>";
//#################################################################################

		//On charge la liste des interprètes de l'oeuvre
		//On récupère la liste des interprètes (avec leur catégorie) rattachés à cette oeuvre sur ce cd
		$sql="select i.nom_interprete, i.prenom_interprete, i.id_interprete, co.niveau, cat.nom_categorie_interprete
		from interprete i, corresp_cd_oeuvre_interprete co, categorie_interprete cat
		where co.id_interprete=i.id_interprete
		and co.id_categorie_interprete=cat.id_categorie_interprete
		and co.id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre
		order by co.niveau, i.nom_interprete, i.prenom_interprete, cat.nom_categorie_interprete";


		$result_interprete=mysql_query($sql) or die ("Impossible de récupérer la liste des interprètes rattachés à ce cd.");

		$nb_ligne=mysql_num_rows($result_interprete);

		if ($nb_ligne==0)
		{
			echo "Il n'y a aucun interprète rattaché à cette oeuvre sur ce cd.<br>";
		}
		else	//Il y a des interprètes rattachés à ce cd
		{
			$id_interprete_precedent=0;

			while ($ligne_interprete=mysql_fetch_array($result_interprete))
			{
				extract($ligne_interprete);
				if ($id_interprete_precedent==0)
				{
					//On passe dans la boucle pour la première fois
					$id_interprete_precedent=$id_interprete;
					echo "<b>$niveau => </b>$nom_interprete&nbsp;$prenom_interprete ($nom_categorie_interprete";
				}
				elseif ($id_interprete_precedent==$id_interprete)
				{
					//Nouvelle catégorie pour le même interprete
					echo ", $nom_categorie_interprete";
				}
				else
				{
					//On traite on nouvel interprète qui n'est pas le premier
					//Il faut donc finir la ligne de l'interprète précédent
					
					echo ")&nbsp;<a href='admin_corresp_cd_oeuvre_interprete.php?action=del_sql&id_interprete=$id_interprete_precedent&id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre' target='_blank'><img src='../images/button_drop.png' border='0'></a><br>\n";
					echo "<b>$niveau => </b>$nom_interprete&nbsp;$prenom_interprete ($nom_categorie_interprete";
					$id_interprete_precedent=$id_interprete;
				}



			}//Fin du while
			//On termine la ligne de l'interprète
				if ($id_interprete_precedent<>0) //On vérifie que l'on a afficher un interprète
				{ echo ")&nbsp;<a href='admin_corresp_cd_oeuvre_interprete.php?action=del_sql&id_interprete=$id_interprete&id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre' target='_blank'><img src='../images/button_drop.png' border='0'></a>\n";
				}


		}//Fin du else : il y a des interprètes rattachés à cette oeuvre sur ce cd

		//On affiche un lien vers un formulaire permettant d'ajouter des interprètes.
		echo "<p><a href='admin_corresp_cd_oeuvre_interprete.php?action=new_form&id_corresp_cd_oeuvre=$id_corresp_cd_oeuvre' target='_blank'>Ajouter un interprète</a>";

			}//Fin du while qui affiche la liste des oeuvres
		}
		
		//On ajouter le programme admin_meilleure_piste pour administrer les meilleure_piste
		echo "<hr>";
		//global $id_cd;
		require "admin_meilleure_piste.php";
		exit();
	}
	case ("edit_sql"): // On enregistre les données dans la base
	{ 	$id_cd=$_POST['id_cd'];
		$nom_cd=$_POST['nom_cd'];
		$numero_cd=$_POST['numero_cd'];
		$photo_cd=$_POST['photo_cd'];
		$commentaire_cd=$_POST['commentaire_cd'];
		$id_marque=$_POST['id_marque'];
		$nombre_cd=$_POST['nombre_cd'];
		$date_avant_derniere_ecoute_cd=$_POST['date_avant_derniere_ecoute_cd'];
		$date_derniere_ecoute_cd=$_POST['date_derniere_ecoute_cd'];


		$sql="update cd set nom_cd=\"$nom_cd\", numero_cd=\"$numero_cd\", photo_cd='$photo_cd',  commentaire_cd=\"$commentaire_cd\",  id_marque='$id_marque', nombre_cd='$nombre_cd', date_avant_derniere_ecoute_cd='$date_avant_derniere_ecoute_cd', date_derniere_ecoute_cd='$date_derniere_ecoute_cd'
				where id_cd='$id_cd'";



		// On se connecte à la base pour exécuter la requête

		require "codbfile";


		// On met à jour la table cd

		// On exécute la requête
		$result = mysql_query($sql)
					or die ("Impossible de mettre à jour la table cd");
		
		// Redirection vers index_admin.php
	        redirection("admin_cd.php?action=edit_form&id_cd=$id_cd");

		exit();
	}
}



?>

</body>

</html>
