Skip to content

Instantly share code, notes, and snippets.

@tomsihap
Last active February 8, 2019 13:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomsihap/b62105dd8cf23cc326cafb77bfc8e4fa to your computer and use it in GitHub Desktop.
Save tomsihap/b62105dd8cf23cc326cafb77bfc8e4fa to your computer and use it in GitHub Desktop.

Examen blanc : PHP/MySQL, POO, MVC

1. Mise en place du projet (2 points)

  • Créer un projet Git : soit public, soit privé avec le formateur en administrateur
  • Incluez à la fin de l'examen un export de votre base de données

2. Base de données (2 points)

Créez une base de données que vous appellerez « prenom_bibliotheque » :

abonne
---
 id(PK – AI – INT)
 prenom (VARCHAR)
 nom (VARCHAR)

association_abonne_ouvrage
id (PK – AI – INT)
id_abonne (INT)
id_ouvrage (INT)

ouvrage
- id (PK – AI – INT)
- titre (VARCHAR)
- auteur (VARCHAR)
---

3. Enregistrement des données (5 points)

En respectant une structure MVC, vous crééez un formulaire pour chaque table, et notamment un formulaire contenant 2 selects ("abonnés" et "ouvrages") pour le formulaire de la table d'association.

Contrôles de saisie :

  • Les champs ouvrage.titre, ouvrage.auteur, abonne.prenom, abonne.nom ne doivent pas faire plus de 150 caractères et ne doivent pas être vides.

Les données doivent s'enregistrer en base de données.

4. Affichage des données (5 points)

Ouvrage et Abonne :

Pour ces deux tables, vous créérez en MVC :

  • Une page qui affiche la liste des éléments, sous forme de tableau
  • Une page qui affiche 1 élément
  • Un bouton "Editer" qui renvoie vers une page d'édition. L'update doit fonctionner en BDD.
  • Un bouton "Supprimer" qui supprime l'élément. La suppression doit fonctionner en BDD.

Table d'association :

  • Une page qui affiche la liste des associations, sous forme de tableau
  • Le tableau contiendra les champs :Nom | Prénom | Titre de l'ouvrage | Auteur
  • Un bouton "Supprimer" qui supprime l'élément. La suppression doit fonctionner en BDD.

5. Requêtes personnalisées (4 points)

  • Afficher le nombre d'abonnés.
  • Afficher le nombre d'ouvrages.
  • Afficher le nombre d'associations.
  • Afficher les ouvrages n'ayant pas été empruntés.
  • Afficher les abonnés n'ayant pas emprunté de livre.
  • Afficher tous les ouvrages empruntés par 1 abonné, trouvé par son nom (le WHERE doit contenir le nom et pas l'ID, de l'abonné de votre choix).
  • Afficher tous les abonnés (meme ceux qui n'ont pas emprunté) ainsi que les ouvrages - pour ceux qui ont emprunté.
  • Afficher les ouvrages (meme ceux qui n'ont pas été empruntés), ainsi que les abonnés - pour ceux qui ont été empruntés.

6. Bonus (2 points)

Vous produirez un code :

  • Indenté
  • Conceptualisé
  • Documenté / Commenté
  • Optimisé
  • Factorisé
  • Générique
  • Maintenable
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment