Base de Donnée, cherche maniére de trier

Résolu
jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je fais un site web du même style que allociné.
Dans ma BDD la table "film" comporte "titre", "acteur1", "acteur2", "acteur3".
je cherche à comparer les 3 acteurs.
Au final je veux: A B C D E.... lorsque l'on clic sur "A"
TOUS les acteurs commençants pas un "A" s'affiche avec TOUS les titres des films dans le quel ils ont joué en acteur1, acteur2 ou acteur3.

J'ai réussi avec une façons un peut trop bourrin à mon gout, MAIS je compare seulement les ACTEUR1.

	if (isset($_GET['lettre']))
	{
		$lettre = $_GET['lettre']; // On récupère le mot
		$lettre = $lettre[0];//on récupére la lettre
	}

	$reponse = mysql_query('SELECT * FROM film ORDER BY acteur1 ');

		for ($i=ord("A");$i<=ord("Z");$i++)//affiche alphabet
			echo '<a href="aff_acteur.php?lettre='.chr($i).'"><font size=6 face="2Peas Short Blonde Hair">'.chr($i).'</font></a> ';

		while ($donnees = mysql_fetch_array($reponse))
		{
		
			$b=$donnees['acteur1'];// 1er lettre de l'acteur
			if($lettre==$b[0])//selectionne les acteurs à afficher
			{	
				if($var!=$donnees['acteur1'])
				{	
					echo '<br><FONT SIZE=4 FACE="Comic Sans MS" COLOR="#000080">'.$donnees['acteur1'].' : </font>';  
				}
			echo '	<a title="'.$donnees['titre'].'" href="aff_info_film.php?info='.$donnees['titre'].'">'.$donnees['titre'].'</a>';						
			$var=$donnees['acteur1'];
			}
			
		}


J'espère acoir bien expliqué mon problème.

Merci à ceux qui essayeront de me venir en aide :)
A voir également:

2 réponses

jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai déjà référencé plus de 300 films dans la table film.
Pour chaque film j'ai rentré le titre, 3 acteur principaux, producteur, année, synopsis, bande annonce .....

Donc une autre méthode serais la bienvenue :)
0
jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
Dsl mais je vois pas comment faire la table FILM_ACTEUR sachant qu'il peut y avoir 5 à 30 film pour un acteur. :s
0
jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   > Utilisateur anonyme
 
	if (isset($_GET['lettre']))
	{
		$lettre = $_GET['lettre']; // On récupère le mot
		$premiére_lettre_selection = $lettre[0];//on récupére la lettre
	}
	else // La variable n'existe pas, c'est la première fois qu'on charge la page
	{
		$premiére_lettre_selection = A; //(par défaut)
	}	
	
	$acteur1 = mysql_query('SELECT * FROM film ORDER BY acteur1 ');
	$acteur2 = mysql_query('SELECT * FROM film ORDER BY acteur1 ');
	$acteur3 = mysql_query('SELECT * FROM film ORDER BY acteur1 ');
	
	while($donnees1 = mysql_fetch_array($acteur1))
	{
		$var1=$donnees1['acteur1'];
		mysql_query( "INSERT INTO Acteur (ActeurTT) VALUES ('$var1')");//insert acteur1
		$donnees2 = mysql_fetch_array($acteur2);
		$var2=$donnees1['acteur2'];
		mysql_query( "INSERT INTO Acteur (ActeurTT) VALUES ('$var2')");	//insert acteur2
		$donnees3 = mysql_fetch_array($acteur3);
		$var3=$donnees1['acteur3'];
		mysql_query( "INSERT INTO Acteur (ActeurTT) VALUES ('$var3')");	//insert acteur3
	}


			// ----------------------------------------//
			// -----------------Affiche--------------//
			// ---------------------------------------//
	echo '	<div class="element_video">'; 	
		for ($i=ord("A");$i<=ord("Z");$i++)//affiche alphabet
			echo '<a href="test.php?lettre='.chr($i).'"><font size=6 face="2Peas Short Blonde Hair">'.chr($i).'</font></a> ';
		
		$reponse = mysql_query('SELECT * FROM Acteur ORDER BY ActeurTT');
		$reponse1 = mysql_query('SELECT * FROM film ORDER BY acteur1 ');
		$reponse2 = mysql_query('SELECT * FROM film ORDER BY acteur2 ');
		$reponse3 = mysql_query('SELECT * FROM film ORDER BY acteur3 ');
		

		while ($donnees_acteurTT = mysql_fetch_array($reponse))
		{		
			$premiére_lettre_acteurTT=$donnees_acteurTT['ActeurTT'];// 1er lettre de l'acteur
			if($premiére_lettre_selection==$premiére_lettre_acteurTT[0])//selectionne les acteurs à afficher selectionné par ordre alpha
			{	
				echo '<br><FONT SIZE=4 FACE="Comic Sans MS" COLOR="#000080">'.$donnees_acteurTT['ActeurTT'].' : </font>';  //affiche acteur
					while ($donnees_film = mysql_fetch_array($reponse1))//fait défiller tous les film 
					{
						if($donnees_acteurTT['ActeurTT']==$donnees_film['acteur1'])//compare ActeurTT avec Acteur1
						echo $donnees_film['titre'];
					}
					while ($donnees_film = mysql_fetch_array($reponse2))//fait défiller tous les film 
					{
						if($donnees_acteurTT['ActeurTT']==$donnees_film['acteur2'])//compare ActeurTT avec Acteur2
						echo $donnees_film['titre'];
					}				
					while ($donnees_film = mysql_fetch_array($reponse3))//fait défiller tous les film 
					{
						if($donnees_acteurTT['ActeurTT']==$donnees_film['acteur3'])//compare ActeurTT avec Acteur3
						echo $donnees_film['titre'];
					}				
			}
			
		}



Le problème : tous les acteur s'affiche correctement, mais les titre des film s'affiche seulement pour le premier acteur :s
jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   > jack000 Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
C'est bon j'ai réussi merci quand même :)

http://pons.xavier.free.fr/aff_acteur