Soucis mysql

Fermé
Wyzi Messages postés 4 Date d'inscription mardi 15 novembre 2016 Statut Membre Dernière intervention 16 novembre 2016 - Modifié par jordane45 le 15/11/2016 à 09:39
Wyzi Messages postés 4 Date d'inscription mardi 15 novembre 2016 Statut Membre Dernière intervention 16 novembre 2016 - 16 nov. 2016 à 11:44
Bonjour/soir,

Je suis étudiant en première année de bts informatique cette année, j'ai un travail à faire, j'y suis presque arrivé mais je trouve pas la dernière étape.
Si quelqu'un est disponible 5 minutes pour essayer de m'aider et/ou me guider sur une solution, je vous explique le problème.

J'ai une base de donnée mysql type, nommée SAKILA (beaucoup utilisé en étude d'info) composé d'acteurs, de leur nom, prénom, id, filmographie etc ...
L'exercice est :
1) Afficher dans une liste déroulante leur identifiant, nom et prénom.
2) Lorsque l'on clique sur un acteur dans cette même liste, sur la même page ou une autre, la filmographie de celui-ci s'affiche.
J'arrive très bien à faire la première commande suivante :
_______________________________________________________________________
<?php
try
{
 $bdd = new PDO('mysql:host=localhost;dbname=sakila;charset=utf8', 'root', '');
}
catch(Exception $e)
{
 die('Erreur : '.$e->getMessage());
}

 $reponse = $bdd->query('select actor.actor_id, actor.last_name, actor.first_name, film.title, release_year FROM actor inner join film_actor on (actor.actor_id=film_actor.actor_id) inner join film on (film_actor.film_id=film.film_id) order by 1,2,3,4,5');
?>
         
        <table border=1 cellpadding=3 cellspacing=1>
                <tr>
     <td>actor_id</td>
                    <td>last_name</td>
                    <td>first_name</td>
                    <td>title</td>
                    <td>release_year</td>
                </tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
            //while($donnees = mysql_fetch_array($reponse))
   while ($donnees = $reponse->fetch())
            {
?>
                <tr>
     <td><?php echo $donnees['actor_id'];?></td>
                    <td><?php echo $donnees['last_name'];?></td>
                    <td><?php echo $donnees['first_name'];?></td>
                    <td><?php echo $donnees['title'];?></td>
                    <td><?php echo $donnees['release_year'];?></td>
                </tr>
<?php
            } //fin de la boucle, le tableau contient toute la BDD
            $reponse->closeCursor(); //deconnection de mysql
?>
        </table>


EDIT : Ajout des balises de code (jordane)

J'arrive à afficher la filmographie d'un acteur, mais je n'arrive pas à lier les deux, c'est à dire cliquer sur un acteur et la liste apparaît.
Si quelqu'un a une solution, je suis tout ouïe, hésitez pas à poster des commentaires et je vous répondrai aussi vite que possible si vous avez besoin de précisions.

Merci d'avance,
Wyzi.

2 réponses

jordane45 Messages postés 38304 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 novembre 2024 4 705
15 nov. 2016 à 09:45
Bonjour,

Première petite remarque ... avec un order by .. en général on y met le nom d'un champ. ID par exemple.
Ou si tu veux que le tri se fasse par ordre alphabétique.. tu peux faire le order by sur le champ 'last_name' (ce qui me semblerait le plus logique)

Pour ce qui est de ta question.... plusieurs possibilités.
La plus simple serait de mettre, pour chaque ligne de ton tableau, un lien vers une seconde page avec en paramètre (voir les variables GET) l'ID de l'acteur.
Et sur cette seconde page... lire la variable GET (contenant l'id donc) pour afficher les infos de cet acteur.

Mais vu que la question concerne une liste déroulante (ce n'est pas ce que tu as fait !! ) il suffit alors d'utiliser le onclick et une petite fonction javascript qui te renvoie vers la page à afficher.....

NB : Une liste déroulante... c'est en utilisant, par exemple, un SELECT (html) => http://www.startyourdev.com/html/tag-html-balise-select



0
Wyzi Messages postés 4 Date d'inscription mardi 15 novembre 2016 Statut Membre Dernière intervention 16 novembre 2016
15 nov. 2016 à 11:24
Bonjour Jordane45,

Merci beaucoup pour ta réponse, je m'attendais pas à une réponse aussi rapide.
Oui effectivement c'est un tableau et pas la liste ; je n'ai pas fais attention en postant, j'ai un autre fichier où j'ai fais la liste déroulante, ici c'était mon premier test pour la commande SQL que je ne connais que très peu.
J'essaye de corriger tout ça dans la journée, puis-je laisser open le sujet quelques jours au cas où j'aurai besoin de plus d'informations sur la solution que tu m'as proposé ? Je la mettrai bien évidemment résolu dès que j'aurai fini.

Wizi.
0
jordane45 Messages postés 38304 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 novembre 2024 4 705
15 nov. 2016 à 11:27
Oui pas de soucis.
0
Wyzi Messages postés 4 Date d'inscription mardi 15 novembre 2016 Statut Membre Dernière intervention 16 novembre 2016
16 nov. 2016 à 11:09
Bonjour,
Si j'ai bien compris le GET, je dois rajouter cette commande à chaque ligne de mon tableau ? J'ai des centaines de lignes dans le tableau, ça risque de faire long, il n'y a pas un autre moyen ?
0
jordane45 Messages postés 38304 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 novembre 2024 4 705 > Wyzi Messages postés 4 Date d'inscription mardi 15 novembre 2016 Statut Membre Dernière intervention 16 novembre 2016
16 nov. 2016 à 11:31
Heu....
Tu n'as pas à le faire "manuellement" sur les "centaines" de lignes de ton tableau...... vu que tu genères ce tableau dans une boucle PHP....
Tu n'as donc qu'à le faire qu'à un seul endroit......
0
Wyzi Messages postés 4 Date d'inscription mardi 15 novembre 2016 Statut Membre Dernière intervention 16 novembre 2016
16 nov. 2016 à 11:44
Ok donc j'ai pas compris grand chose à GET, je vais essayer de me renseigner un peu plus.
Si jamais tu as un lien sur comment faire, je suis un peu perdu ça m'aiderait pas mal ^^
0