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 -
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.
J'espère acoir bien expliqué mon problème.
Merci à ceux qui essayeront de me venir en aide :)
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:
- Base de Donnée, cherche maniére de trier
- Excel trier par ordre croissant chiffre - Guide
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
2 réponses
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 :)
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 :)
Dsl mais je vois pas comment faire la table FILM_ACTEUR sachant qu'il peut y avoir 5 à 30 film pour un acteur. :s
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