Soucis mysql [Fermé]

Signaler
Messages postés
4
Date d'inscription
mardi 15 novembre 2016
Statut
Membre
Dernière intervention
16 novembre 2016
-
Messages postés
4
Date d'inscription
mardi 15 novembre 2016
Statut
Membre
Dernière intervention
16 novembre 2016
-
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

Messages postés
32054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 avril 2021
3 391
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



Messages postés
4
Date d'inscription
mardi 15 novembre 2016
Statut
Membre
Dernière intervention
16 novembre 2016

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.
Messages postés
32054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 avril 2021
3 391
Oui pas de soucis.
Messages postés
4
Date d'inscription
mardi 15 novembre 2016
Statut
Membre
Dernière intervention
16 novembre 2016

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 ?
Messages postés
32054
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
11 avril 2021
3 391 >
Messages postés
4
Date d'inscription
mardi 15 novembre 2016
Statut
Membre
Dernière intervention
16 novembre 2016

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......
Messages postés
4
Date d'inscription
mardi 15 novembre 2016
Statut
Membre
Dernière intervention
16 novembre 2016

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