Skip to content
Snippets Groups Projects
Commit 99e11e13 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Préparation TP4.

parent 49c76732
No related branches found
No related tags found
No related merge requests found
Showing
with 913 additions and 0 deletions
File added
-- phpMyAdmin SQL Dump
-- version 5.0.4deb2+deb11u1
-- https://www.phpmyadmin.net/
--
-- Hôte : localhost:3306
-- Généré le : lun. 26 sep. 2022 à 08:41
-- Version du serveur : 10.5.15-MariaDB-0+deb11u1
-- Version de PHP : 7.4.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de données : `sgagne`
--
-- --------------------------------------------------------
--
-- Structure de la table `auteur`
--
CREATE TABLE `auteur` (
`numAuteur` tinyint(4) NOT NULL,
`nom` varchar(50) NOT NULL,
`prenom` varchar(50) NOT NULL,
`nationalite` varchar(10) NOT NULL,
`anneeNaissance` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Déchargement des données de la table `auteur`
--
INSERT INTO `auteur` (`numAuteur`, `nom`, `prenom`, `nationalite`, `anneeNaissance`) VALUES
(1, 'Hugo', 'Victor', 'F', 1802),
(2, 'Thilliez', 'Franck', 'F', 1973),
(3, 'Twain', 'Mark', 'USA', 1835),
(4, 'Norek', 'Olivier', 'F', 1975),
(5, 'Werber', 'Bernard', 'F', 1842);
--
-- Index pour les tables déchargées
--
--
-- Index pour la table `auteur`
--
ALTER TABLE `auteur`
ADD PRIMARY KEY (`numAuteur`);
--
-- AUTO_INCREMENT pour les tables déchargées
--
--
-- AUTO_INCREMENT pour la table `auteur`
--
ALTER TABLE `auteur`
MODIFY `numAuteur` tinyint(4) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=19;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
<?php
class Connexion {
// attributs de la classe Connexion paramètres de connexion à la base
static private $hostname = 'localhost';
static private $database = 'iut-dev';
static private $login = 'iut-dev-user';
static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
// attribut de la classe Connexion paramètres d'encodage
static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
// attribut de la classe Connexion qui recevra l'instance PDO
static private $pdo;
// getter de pdo
static public function pdo() {return self::$pdo;}
// fonction de connexion
static public function connect() {
$h = self::$hostname;
$d = self::$database;
$l = self::$login;
$p = self::$password;
$t = self::$tabUTF8;
try {
self::$pdo = new PDO("mysql:host=$h;dbname=$d",$l,$p,$t);
self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "Erreur de connexion !";
}
}
}
\ No newline at end of file
<?php
$lesTutures = Voiture::getAllVoitures();
include "view/list.php";
?>
\ No newline at end of file
File added
<?php
class Voiture{
private $marque;
private $couleur;
private $immatriculation;
public function __construct($details)
{
if(isset($details['marque'])){
$this->marque = $details['marque'];
}else{
echo "Marque introuvable, \"iconnue\" sera spécifié.";
$this->marque = "inconnue";
}
if(isset($details['couleur'])){
$this->marque = $details['couleur'];
}else{
echo "Couleur introuvable, \"iconnue\" sera spécifié.";
$this->couleur = "inconnue";
}
if(isset($details['immatriculation'])){
$this->marque = $details['immatriculation'];
}else{
echo "Immatriculation introuvable, \"iconnue\" sera spécifié.";
$this->immatriculation = "inconnue";
}
}
public function getMarque() {
return $this->marque;
}
public function setMarque($marque) {
$this->marque = $marque;
}
public function getCouleur() {
return $this->couleur;
}
public function setCouleur($couleur) {
$this->couleur = $couleur;
}
public function getImmatriculation() {
return $this->immatriculation;
}
public function setImmatriculation($immatriculation) {
$this->immatriculation = $immatriculation;
}
public function afficher(){
echo "La voiture ".$this->couleur." immatriculée ".$this->immatriculation." est de la marque ".$this->marque.".";
}
public static function getAllVoitures(){
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->query("SELECT * FROM voiture");
return $query->fetchAll(PDO::FETCH_ASSOC);
}
public static function rechercherParPlaque($plaque){
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->prepare("SELECT * FROM voiture WHERE immatriculation=?");
$query->execute([$plaque]);
return $query->fetch(PDO::FETCH_ASSOC);
}
public static function deleteVoitureByImmat($plaque){
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->prepare("DELETE FROM voiture WHERE immatriculation=?");
$query->execute([$plaque]);
}
public static function addVoiture($immat, $marque, $couleur){
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->prepare("INSERT INTO `voiture` (`immatriculation`, `marque`, `couleur`) VALUES (?,?,?)");
$query->execute([$immat, $marque, $couleur]);
}
public static function updateVoiture($immat, $marque, $couleur){
$bdd = new Connexion;
$bdd->connect();
$bdd = $bdd->pdo();
$query = $bdd->prepare("UPDATE `voiture` SET `marque` = ?, `couleur` = ? WHERE `immatriculation` = ?");
$query->execute([$marque, $couleur, $immat]);
}
}
\ No newline at end of file
<?php
require_once "conf/Connexion.php";
require_once "model/Voiture.php";
require_once "controller/controllerVoiture.php";
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<title>Formulaire Création Voiture</title>
<meta name='viewport' content='width=device-width, initial-scale=1'>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ho+j7jyWK8fNQe+A12Hb8AhRq26LrZ/JpcUGGOn+Y7RsweNrtN/tE3MoK7ZeZDyx" crossorigin="anonymous"></script>
</head>
<body class="bg-dark">
<div class="container mt-5 bg-light rounded p-2">
<h1>Gestionnaire de véhicules</h1>
<p>Voici la liste des véhicules garés.</p>
<table class="table">
<thead class="thead-dark">
<tr>
<th scope="col">Immatriculation</th>
<th scope="col">Marque</th>
<th scope="col">Couleur</th>
</tr>
</thead>
<tbody id="tableau">
<!--
<tr>
<th scope="row">1</th>
<td>Mark</td>
<td>Otto</td>
</tr>
-->
<?php
if(isset($lesTutures)){
foreach($lesTutures as $tuture){
echo ('<tr>\
<th scope="row">'.$tuture["immatriculation"].'</th>
<td>'.$tuture["marque"].'</td>
<td>'.$tuture["couleur"].'</td>
</tr>');
}
}
?>
</tbody>
</table>
</div>
</body>
</html>
File added
-- phpMyAdmin SQL Dump
-- version 5.0.4deb2+deb11u1
-- https://www.phpmyadmin.net/
--
-- Hôte : localhost:3306
-- Généré le : Dim 02 oct. 2022 à 17:19
-- Version du serveur : 10.5.15-MariaDB-0+deb11u1
-- Version de PHP : 7.4.30
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de données : `sgagne`
--
-- --------------------------------------------------------
--
-- Structure de la table `Adherent`
--
CREATE TABLE `Adherent` (
`login` varchar(50) CHARACTER SET utf8 NOT NULL,
`mdp` varchar(64) CHARACTER SET utf8 NOT NULL,
`nomAdherent` varchar(50) DEFAULT NULL,
`prenomAdherent` varchar(50) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`dateAdhesion` date DEFAULT NULL,
`numCategorie` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `Adherent`
--
INSERT INTO `Adherent` (`login`, `mdp`, `nomAdherent`, `prenomAdherent`, `email`, `dateAdhesion`, `numCategorie`) VALUES
('lafleche', '12345', 'SELLA', 'Philippe', 'philippe.sella@yopmail.com', '2022-10-05', 3),
('musclor', 'grrr', 'CHABAL', 'Sébastien', 'sebastien.chabal@yopmail.com', '2022-10-05', 2),
('rico', 'delprado', 'DI MECO', 'Eric', 'eric.di-meco@yopmail.com', '2022-10-09', 3),
('speedy', 'azerty', 'DUPONT', 'Antoine', 'antoine.dupont@yopmail.com', '2022-10-03', 1),
('theboss', 'jojo', 'MOSCATO', 'Vincent', 'vincent.moscato@yopmail.com', '2022-10-03', 1);
-- --------------------------------------------------------
--
-- Structure de la table `Auteur`
--
CREATE TABLE `Auteur` (
`numAuteur` int(11) NOT NULL,
`nom` varchar(50) DEFAULT NULL,
`prenom` varchar(50) DEFAULT NULL,
`anneeNaissance` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `Auteur`
--
INSERT INTO `Auteur` (`numAuteur`, `nom`, `prenom`, `anneeNaissance`) VALUES
(1, 'THILLIEZ', 'Franck', 1973),
(2, 'NOREK', 'Olivier', 1975),
(3, 'CORNWELL', 'Patricia', 1956),
(4, 'GARY', 'Romain', 1914),
(5, 'KLEIN', 'Etienne', 1958),
(6, 'HAWKING', 'Stephen', 1942),
(7, 'EINSTEIN', 'Albert', 1879),
(8, 'HELMSTETTER', 'Didier', 1953),
(9, 'DROUIN', 'Emilie', NULL),
(10, 'MORAND', 'Elodie', NULL),
(11, 'ZIDANE', 'Zinedine', 1972),
(12, 'MARX', 'Thierry', 1959),
(13, 'HAUMONT', 'Raphaël', 1978),
(14, 'HAMILTON', 'Gene', NULL),
(15, 'TURING', 'Alan', 1912);
-- --------------------------------------------------------
--
-- Structure de la table `Categorie`
--
CREATE TABLE `Categorie` (
`numCategorie` int(11) NOT NULL,
`libelle` varchar(50) DEFAULT NULL,
`nbLivresAutorises` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `Categorie`
--
INSERT INTO `Categorie` (`numCategorie`, `libelle`, `nbLivresAutorises`) VALUES
(1, 'basique', 2),
(2, 'régulier', 5),
(3, 'fervent', 8);
-- --------------------------------------------------------
--
-- Structure de la table `DateEmprunt`
--
CREATE TABLE `DateEmprunt` (
`numDateEmprunt` int(11) NOT NULL,
`dateEmprunt` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `DateEmprunt`
--
INSERT INTO `DateEmprunt` (`numDateEmprunt`, `dateEmprunt`) VALUES
(1, '2022-10-02'),
(2, '2022-10-03'),
(3, '2022-10-04'),
(4, '2022-10-05');
-- --------------------------------------------------------
--
-- Structure de la table `emprunte`
--
CREATE TABLE `emprunte` (
`numLivre` int(11) NOT NULL,
`login` varchar(50) CHARACTER SET utf8 NOT NULL,
`numDateEmprunt` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `emprunte`
--
INSERT INTO `emprunte` (`numLivre`, `login`, `numDateEmprunt`) VALUES
(1, 'rico', 1);
-- --------------------------------------------------------
--
-- Structure de la table `estAuteurDe`
--
CREATE TABLE `estAuteurDe` (
`numAuteur` int(11) NOT NULL,
`numLivre` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `estAuteurDe`
--
INSERT INTO `estAuteurDe` (`numAuteur`, `numLivre`) VALUES
(1, 1),
(1, 2),
(3, 3),
(3, 4),
(3, 5),
(4, 6),
(4, 7),
(5, 10),
(5, 11),
(6, 9),
(7, 8),
(8, 12),
(9, 13),
(10, 13),
(11, 14),
(12, 15),
(13, 15),
(14, 16),
(15, 17);
-- --------------------------------------------------------
--
-- Structure de la table `estDeNationalite`
--
CREATE TABLE `estDeNationalite` (
`numAuteur` int(11) NOT NULL,
`numNationalite` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `estDeNationalite`
--
INSERT INTO `estDeNationalite` (`numAuteur`, `numNationalite`) VALUES
(1, 1),
(2, 1),
(3, 2),
(4, 1),
(4, 5),
(5, 1),
(6, 4),
(7, 2),
(7, 6),
(8, 1),
(9, 1),
(10, 1),
(11, 1),
(12, 1),
(13, 1),
(14, 2),
(15, 1);
-- --------------------------------------------------------
--
-- Structure de la table `Genre`
--
CREATE TABLE `Genre` (
`numGenre` int(11) NOT NULL,
`intitule` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `Genre`
--
INSERT INTO `Genre` (`numGenre`, `intitule`) VALUES
(1, 'roman policier'),
(2, 'sciences'),
(3, 'jardinage'),
(4, 'tricot'),
(5, 'sport'),
(6, 'cuisine'),
(7, 'bricolage'),
(8, 'informatique'),
(9, 'roman');
-- --------------------------------------------------------
--
-- Structure de la table `Livre`
--
CREATE TABLE `Livre` (
`numLivre` int(11) NOT NULL,
`titre` varchar(50) DEFAULT NULL,
`anneeParution` int(11) DEFAULT NULL,
`numGenre` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `Livre`
--
INSERT INTO `Livre` (`numLivre`, `titre`, `anneeParution`, `numGenre`) VALUES
(1, 'Le syndrome E', 2010, 1),
(2, 'Sharko', 2017, 1),
(3, 'Postmortem', 1990, 1),
(4, 'Une peine d\'exception', 1993, 1),
(5, 'La séquence des corps', 1994, 1),
(6, 'Tulipe', 1946, 9),
(7, 'La promesse de l\'aube', 1960, 9),
(8, 'Conceptions scientifiques', 1952, 2),
(9, 'Une brève histoire du temps', 1988, 2),
(10, 'Les tactiques de Chronos', 2003, 2),
(11, 'Discours sur l\'origine de l\'univers', 2010, 2),
(12, 'Le potager du paresseux', 2019, 3),
(13, 'Tricoter ses chaussettes', 2021, 4),
(14, 'Sur un coup de tête', 2006, 5),
(15, 'L\'innovation aux fourneaux', 2016, 6),
(16, 'Le bricolage pour les nuls', 1998, 7),
(17, 'PHP pour les nuls', 2022, 8);
-- --------------------------------------------------------
--
-- Structure de la table `Nationalite`
--
CREATE TABLE `Nationalite` (
`numNationalite` int(11) NOT NULL,
`pays` varchar(50) DEFAULT NULL,
`abrege` varchar(50) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
--
-- Déchargement des données de la table `Nationalite`
--
INSERT INTO `Nationalite` (`numNationalite`, `pays`, `abrege`) VALUES
(1, 'France', 'FRA'),
(2, 'Etats-Unis', 'USA'),
(3, 'Suède', 'SWE'),
(4, 'Royaume-Uni', 'GBR'),
(5, 'Russie', 'RUS'),
(6, 'Allemagne', 'DEU');
-- --------------------------------------------------------
--
-- Index pour les tables déchargées
--
--
-- Index pour la table `Adherent`
--
ALTER TABLE `Adherent`
ADD PRIMARY KEY (`login`),
ADD KEY `ctAd1` (`numCategorie`);
--
-- Index pour la table `Auteur`
--
ALTER TABLE `Auteur`
ADD PRIMARY KEY (`numAuteur`);
--
-- Index pour la table `Categorie`
--
ALTER TABLE `Categorie`
ADD PRIMARY KEY (`numCategorie`);
--
-- Index pour la table `DateEmprunt`
--
ALTER TABLE `DateEmprunt`
ADD PRIMARY KEY (`numDateEmprunt`);
--
-- Index pour la table `emprunte`
--
ALTER TABLE `emprunte`
ADD PRIMARY KEY (`numLivre`,`login`,`numDateEmprunt`),
ADD KEY `ctEmprunte2` (`login`),
ADD KEY `ctEmprunte3` (`numDateEmprunt`);
--
-- Index pour la table `estAuteurDe`
--
ALTER TABLE `estAuteurDe`
ADD PRIMARY KEY (`numAuteur`,`numLivre`),
ADD KEY `ctestAuteurDe2` (`numLivre`);
--
-- Index pour la table `estDeNationalite`
--
ALTER TABLE `estDeNationalite`
ADD PRIMARY KEY (`numAuteur`,`numNationalite`),
ADD KEY `ctEstDeNationalite2` (`numNationalite`);
--
-- Index pour la table `Genre`
--
ALTER TABLE `Genre`
ADD PRIMARY KEY (`numGenre`);
--
-- Index pour la table `Livre`
--
ALTER TABLE `Livre`
ADD PRIMARY KEY (`numLivre`),
ADD KEY `ctL1` (`numGenre`);
--
-- Index pour la table `Nationalite`
--
ALTER TABLE `Nationalite`
ADD PRIMARY KEY (`numNationalite`);
--
-- AUTO_INCREMENT pour les tables déchargées
--
--
-- AUTO_INCREMENT pour la table `Auteur`
--
ALTER TABLE `Auteur`
MODIFY `numAuteur` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=16;
--
-- AUTO_INCREMENT pour la table `Categorie`
--
ALTER TABLE `Categorie`
MODIFY `numCategorie` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
--
-- AUTO_INCREMENT pour la table `DateEmprunt`
--
ALTER TABLE `DateEmprunt`
MODIFY `numDateEmprunt` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
--
-- AUTO_INCREMENT pour la table `Genre`
--
ALTER TABLE `Genre`
MODIFY `numGenre` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
--
-- AUTO_INCREMENT pour la table `Livre`
--
ALTER TABLE `Livre`
MODIFY `numLivre` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
--
-- AUTO_INCREMENT pour la table `Nationalite`
--
ALTER TABLE `Nationalite`
MODIFY `numNationalite` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- Contraintes pour les tables déchargées
--
--
-- Contraintes pour la table `Adherent`
--
ALTER TABLE `Adherent`
ADD CONSTRAINT `ctAd1` FOREIGN KEY (`numCategorie`) REFERENCES `Categorie` (`numCategorie`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Contraintes pour la table `emprunte`
--
ALTER TABLE `emprunte`
ADD CONSTRAINT `ctEmprunte1` FOREIGN KEY (`numLivre`) REFERENCES `Livre` (`numLivre`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `ctEmprunte2` FOREIGN KEY (`login`) REFERENCES `Adherent` (`login`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `ctEmprunte3` FOREIGN KEY (`numDateEmprunt`) REFERENCES `DateEmprunt` (`numDateEmprunt`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Contraintes pour la table `estAuteurDe`
--
ALTER TABLE `estAuteurDe`
ADD CONSTRAINT `ctestAuteurDe1` FOREIGN KEY (`numAuteur`) REFERENCES `Auteur` (`numAuteur`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `ctestAuteurDe2` FOREIGN KEY (`numLivre`) REFERENCES `Livre` (`numLivre`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Contraintes pour la table `estDeNationalite`
--
ALTER TABLE `estDeNationalite`
ADD CONSTRAINT `ctEstDeNationalite1` FOREIGN KEY (`numAuteur`) REFERENCES `Auteur` (`numAuteur`) ON DELETE CASCADE ON UPDATE CASCADE,
ADD CONSTRAINT `ctEstDeNationalite2` FOREIGN KEY (`numNationalite`) REFERENCES `Nationalite` (`numNationalite`) ON DELETE CASCADE ON UPDATE CASCADE;
--
-- Contraintes pour la table `Livre`
--
ALTER TABLE `Livre`
ADD CONSTRAINT `ctL1` FOREIGN KEY (`numGenre`) REFERENCES `Genre` (`numGenre`) ON DELETE CASCADE ON UPDATE CASCADE;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
<?php
class Connexion
{
// les attributs static caractéristiques de la connexion
static private $hostname = 'localhost';
static private $database = 'iut-dev';
static private $login = 'iut-dev-user';
static private $password = 'p73i74KAV8lami2iyIpehE5ozic8GA';
static private $tabUTF8 = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");
// l'attribut static qui matérialisera la connexion
static private $pdo;
// le getter public de cet attribut
static public function pdo()
{
return self::$pdo;
}
// la fonction static de connexion qui initialise $pdo et lance la tentative de connexion
static public function connect()
{
$h = self::$hostname;
$d = self::$database;
$l = self::$login;
$p = self::$password;
$t = self::$tabUTF8;
try {
self::$pdo = new PDO("mysql:host=$h;dbname=$d", $l, $p, $t);
self::$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo "erreur de connexion : " . $e->getMessage() . "<br>";
}
}
}
?>
<?php
require_once("modele/auteur.php");
class ControleurAuteur {
public static function lireAuteurs() {
$titre = "les auteurs";
$tableau = Auteur::getAllAuteurs();
$tableauAffichage = array();
foreach($tableau as $auteur) {
$numAuteur = $auteur->getNumAuteur();
$nom = $auteur->getNom();
$prenom = $auteur->getPrenom();
$lienDetails = "<a class='bouton' href=\"routeur.php?controleur=controleurAuteur&action=lireAuteur&numAuteur=$numAuteur\"> détails </a>";
$tableauAffichage[] = "<div class='ligne'><div>Auteur $prenom $nom</div><div> $lienDetails</div></div>";
}
include("vue/debut.php");
include("vue/menu.html");
include("vue/lesAuteurs.php");
include("vue/fin.html");
}
public static function lireAuteur() {
$titre = "un auteur";
$numAuteur = $_GET["numAuteur"];
$auteur = Auteur::getAuteurByNum($numAuteur);
include("vue/debut.php");
include("vue/menu.html");
include("vue/unAuteur.php");
include("vue/fin.html");
}
}
?>
.ligne {
display:flex;
flex-direction: row;
justify-content: space-between;
margin-top:10px;
margin-left:5%;
width:50%;
}
nav {
margin:10px;
padding:5px;
}
<?php
class Auteur {
// attributs
private $numAuteur;
private $nom;
private $prenom;
private $anneeNaissance;
// getter
public function getNumAuteur() {return $this->numAuteur;}
public function getNom() {return $this->nom;}
public function getPrenom() {return $this->prenom;}
public function getAnneeNaissance() {return $this->anneeNaissance;}
// setter
public function setNumAuteur($nu) {$this->numAuteur = $nu;}
public function setNom($n) {$this->nom = $n;}
public function setPrenom($p) {$this->prenom = $p;}
public function setAnneeNaissance($a) {$this->anneeNaissance = $a;}
// un constructeur
public function __construct($nu = NULL, $n = NULL, $p = NULL, $a = NULL) {
if (!is_null($nu)) {
$this->numAuteur = $nu;
$this->nom = $n;
$this->prenom = $p;
$this->anneeNaissance = $a;
}
}
// une methode d'affichage.
public function afficher() {
echo "<p>auteur $this->prenom $this->nom, né(e) en $this->anneeNaissance </p>";
}
// méthode static qui retourne les auteurs en un tableau d'objets
public static function getAllAuteurs() {
// écriture de la requête
$requete = "SELECT * FROM Auteur;";
// envoi de la requête et stockage de la réponse
$resultat = Connexion::pdo()->query($requete);
// traitement de la réponse
$resultat->setFetchmode(PDO::FETCH_CLASS,'Auteur');
$tableau = $resultat->fetchAll();
return $tableau;
}
// méthode static qui retourne un auteur identifié par son numAuteur
public static function getAuteurByNum($numAuteur) {
// écriture de la requête
$requetePreparee = "SELECT * FROM Auteur WHERE numAuteur = :num_tag;";
$req_prep = Connexion::pdo()->prepare($requetePreparee);
// le tableau des valeurs
$valeurs = array("num_tag" => $numAuteur);
try {
// envoi de la requête
$req_prep->execute($valeurs);
// traitement de la réponse
$req_prep->setFetchmode(PDO::FETCH_CLASS,'Auteur');
// récupération de l'auteur
$a = $req_prep->fetch();
// retour
return $a;
} catch(PDEException $e) {
echo $e->getMessage();
}
}
}
?>
<?php
require_once("config/connexion.php");
Connexion::connect();
require_once("controleur/controleurAuteur.php");
$action = "lireAuteurs";
if (isset($_GET["action"]) && in_array($_GET["action"],get_class_methods('ControleurAuteur'))) {
$action = $_GET["action"];
}
controleurAuteur::$action();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title><?php echo $titre; ?></title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body>
</body>
</html>
<?php
foreach ($tableauAffichage as $ligne) {
echo $ligne;
}
?>
<nav>
<a href="routeur.php?action=lireAuteurs">tous les auteurs</a>
</nav>
<?php
$auteur->afficher();
?>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment