tp3
This commit is contained in:
parent
66239bdc85
commit
c984310cc2
R3.01/tp/tp3
README.md
cinema
@ -37,4 +37,104 @@ vous pouvez utiliser un tableau pour représenter les règles du jeu. Par exempl
|
|||||||
$rules = [ 0 => [ 0 => "Draw", 1 => "Loss", 2 => "Win"], ... ];
|
$rules = [ 0 => [ 0 => "Draw", 1 => "Loss", 2 => "Win"], ... ];
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Ex2.
|
||||||
|
|
||||||
|
**Avant de commencer**
|
||||||
|
>- Vous diposez, sur le serveur mysql qui tourne sur la machine
|
||||||
|
> dwarves.iut-fbleau.fr, d'un compte identifié par votre login. Le mot de
|
||||||
|
> passe a été initailisé avec votre login. Pensez à le changer
|
||||||
|
> rapidement.
|
||||||
|
>- Vous disposez en lecture/écriture d'une seule base de données
|
||||||
|
> identifiée là encore par votre login.
|
||||||
|
>- Vous avez aussi accès à cette
|
||||||
|
> [url](https://dwarves.iut-fbleau.fr/phpmyadmin/) à une interface web
|
||||||
|
> (phpmyadmin) de gestion de votre base.
|
||||||
|
|
||||||
|
Pour travailler, importez dans votre base les tables et leurs contenus
|
||||||
|
|
||||||
|
```sql
|
||||||
|
Artiste (idArtiste,nom,prenom,anneeNaiss)
|
||||||
|
---------
|
||||||
|
Genre (code)
|
||||||
|
----
|
||||||
|
Pays (code,nom,langue)
|
||||||
|
----
|
||||||
|
Film (idFilm,titre,annee,#idMes,#genre,resume,#codePays,urlImage)
|
||||||
|
------
|
||||||
|
Role (#idFilm,#idActeur,nomRole)
|
||||||
|
------- -------- -------
|
||||||
|
```
|
||||||
|
|
||||||
|
qui se trouvent dans le fichier **cinema.sql**. Vous pouvez directement
|
||||||
|
l'importer à partir de phpmyadmin. Examinez les tables, leurs
|
||||||
|
structures et relations.
|
||||||
|
|
||||||
|
 Par pitié !
|
||||||
|
|
||||||
|
**Testez directement vos requêtes sql avec phpmyadmin (ou autre) avant
|
||||||
|
des les "intégrer" à php !**
|
||||||
|
|
||||||
|
|
||||||
|
1. Complétez le script **films.php** qui affiche la liste de tous les films
|
||||||
|
de votre base sous forme d'une table html, classée par titre, avec
|
||||||
|
l'année, le genre et le réalisateur.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
<details><summary>Conseils</summary>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
- le serveur tourne sur le serveur http, donc pour vous connecter,
|
||||||
|
utiliser `localhost` comme nom.
|
||||||
|
- Pour récuperer les informations demandées, pensez à faire une
|
||||||
|
jointure entre Film et Artiste.
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
2. Modifiez le script précédent afin de paginer l'affichage des films.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
<details><summary>Conseils</summary>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
- La clause `LIMIT` dans un SELECT permet de restreindre le nombre de
|
||||||
|
résultats de la requête.
|
||||||
|
|
||||||
|
- L'option `SQL_CALC_FOUND_ROWS` permet, en présence de la clause
|
||||||
|
LIMIT, de savoir combien de resultats auraient été selectionnée en
|
||||||
|
son absence.
|
||||||
|
|
||||||
|
Il faut utliser juste après la requête la fonction MySQL
|
||||||
|
`FOUND_ROWS()`.
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
3. Ajoutez dans le script précédent un formulaire avec une liste déroulante
|
||||||
|
qui permet de filtrer les films par réalisateur.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
<details><summary>Conseils</summary>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
Il faut récupérer dans la table Artiste les réalisateurs, et peupler une
|
||||||
|
liste déroulante. La valeur envoyé par le formulaire sera bien sûr
|
||||||
|
l'identifiant du réalisateur.
|
||||||
|
|
||||||
|
Faites en sorte, comme sur la capture d'écran, de réafficher la liste
|
||||||
|
déroulante avec le nom du réalisateur dernièrement selectionné.
|
||||||
|
</div>
|
||||||
|
</details>
|
||||||
|
|
||||||
|
4. On veut dans cette question, à partir de la liste, afficher le détail
|
||||||
|
d'un film. Pour cela, chaque titre, dans le tableau, sera un lien qui
|
||||||
|
conduira à la fiche du film. L'identifiant du film sera passé dans
|
||||||
|
l'url du lien.
|
||||||
|
|
||||||
|
<a href="./fiche.php?film=1">Vertigo</a>
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
5. Pour ceux qui s'ennuient, faites en sorte que l'on puisse trier
|
||||||
|
l'affichage sous forme de tableau par odre de titre, année, ou genre.
|
||||||
|
652
R3.01/tp/tp3/cinema/sql/cinema.sql
Normal file
652
R3.01/tp/tp3/cinema/sql/cinema.sql
Normal file
File diff suppressed because one or more lines are too long
18
R3.01/tp/tp3/cinema/src/css/style.css
Normal file
18
R3.01/tp/tp3/cinema/src/css/style.css
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
table{
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
img{
|
||||||
|
width:500px;
|
||||||
|
}
|
||||||
|
td + td + td + td{
|
||||||
|
width : 20%;
|
||||||
|
}
|
||||||
|
td:first-child + td{
|
||||||
|
width:10%;
|
||||||
|
}
|
||||||
|
td:first-child{
|
||||||
|
width:30%;
|
||||||
|
}
|
||||||
|
td:first-child + td + td {
|
||||||
|
width:30%;
|
||||||
|
}
|
14
R3.01/tp/tp3/cinema/src/films.php
Normal file
14
R3.01/tp/tp3/cinema/src/films.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
include './modeles/modeleFilms.php';
|
||||||
|
|
||||||
|
$films = getFilms();
|
||||||
|
|
||||||
|
//
|
||||||
|
// on "charge" la vue
|
||||||
|
//
|
||||||
|
|
||||||
|
include './vues/header.php';
|
||||||
|
include './vues/vueFilms.php';
|
||||||
|
include './vues/footer.php';
|
||||||
|
?>
|
||||||
|
|
16
R3.01/tp/tp3/cinema/src/modeles/modeleFilms.php
Normal file
16
R3.01/tp/tp3/cinema/src/modeles/modeleFilms.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
function _getConnection()
|
||||||
|
{
|
||||||
|
static $_conn = NULL;
|
||||||
|
if ($_conn === NULL){
|
||||||
|
$_conn = mysqli_connect("localhost","","","");
|
||||||
|
}
|
||||||
|
return $_conn;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function getFilms()
|
||||||
|
{
|
||||||
|
// A completer
|
||||||
|
}
|
||||||
|
?>
|
3
R3.01/tp/tp3/cinema/src/vues/footer.php
Normal file
3
R3.01/tp/tp3/cinema/src/vues/footer.php
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
</main>
|
||||||
|
</body>
|
||||||
|
</html>
|
14
R3.01/tp/tp3/cinema/src/vues/header.php
Normal file
14
R3.01/tp/tp3/cinema/src/vues/header.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="fr">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<title>Films</title>
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="./css/style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<main class="container">
|
32
R3.01/tp/tp3/cinema/src/vues/vueFilms.php
Normal file
32
R3.01/tp/tp3/cinema/src/vues/vueFilms.php
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<!--
|
||||||
|
Variables de la vue
|
||||||
|
$films : les films de la page
|
||||||
|
-->
|
||||||
|
|
||||||
|
<h2>Films</h2>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Titre</th>
|
||||||
|
<th>Année</th>
|
||||||
|
<th>Genre</th>
|
||||||
|
<th>Réalisateur</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php
|
||||||
|
foreach($films as $film){
|
||||||
|
|
||||||
|
echo "
|
||||||
|
<tr>
|
||||||
|
<td><a href='#'>{$film['titre']}</a></td>
|
||||||
|
<td>{$film['annee']}</td>
|
||||||
|
<td>{$film['genre']}</td>
|
||||||
|
<td>{$film['prenom']} {$film['nom']}</td>
|
||||||
|
</tr>";
|
||||||
|
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user