commit 2a1804109b4a482b6abdc49b6258d67e1887b853 Author: steve.maingana Date: Thu Sep 11 11:25:49 2025 +0200 First commit diff --git a/bibliotheque.php b/bibliotheque.php new file mode 100644 index 0000000..a635d9e --- /dev/null +++ b/bibliotheque.php @@ -0,0 +1,57 @@ + getMessage()); + } + + // Ajout d’un livre + if (!empty($_POST['titre']) && !empty($_POST['auteur']) && !empty($_POST['annee'])) { + $stmt = $db->prepare("INSERT INTO livres (titre, auteur, annee) VALUES (?, ?, ?)"); + $stmt->execute([$_POST['titre'], $_POST['auteur'], $_POST['annee']]); + } + + // Récupération des livres + $stmt = $db->query("SELECT * FROM livres"); + $livres = $stmt->fetchAll(PDO::FETCH_ASSOC); + + ?> + + + + + + Bibliothèque + + +

Gestion de la bibliothèque

+ +
+
+
+
+ +
+ +

Liste des livres

+ + + + diff --git a/bibliotheque.sql b/bibliotheque.sql new file mode 100644 index 0000000..f9e6c1c --- /dev/null +++ b/bibliotheque.sql @@ -0,0 +1,45 @@ +DROP DATABASE IF EXISTS bdbibliotheque; + +-- Base de données pour l'application Bibliothèque +CREATE DATABASE IF NOT EXISTS bdbibliotheque + DEFAULT CHARACTER SET utf8mb4 + COLLATE utf8mb4_general_ci; + +USE bdbibliotheque; + +-- Table des catégories de livres +CREATE TABLE IF NOT EXISTS categories ( + id INT AUTO_INCREMENT PRIMARY KEY, + nom VARCHAR(100) +); + +-- Table des livres +CREATE TABLE IF NOT EXISTS livres ( + id INT AUTO_INCREMENT PRIMARY KEY, + categorie INT NOT NULL, + titre VARCHAR(100) NOT NULL, + auteur VARCHAR(100) NOT NULL, + annee INT NOT NULL, + CONSTRAINT fk_livre_categorie + FOREIGN KEY (categorie) + REFERENCES categories (id) +); + +-- Données de test +INSERT INTO categories (nom) VALUES +('Roman'), +('Manga'), +('Bande dessinée'); + +INSERT INTO livres (categorie, titre, auteur, annee) VALUES +(1, '1984', 'George Orwell', 1949), +(1, 'Le Petit Prince', 'Antoine de Saint-Exupéry', 1943), +(1, 'L’Étranger', 'Albert Camus', 1942), +(2, 'One Piece', 'Eiichirō Oda', 1997), +(2, 'Naruto', 'Masashi Kishimoto', 1999), +(2, 'Sun Ken Rock', 'Boichi', 2006), +(3, 'Astérix', 'René Goscinny', 1959); + +-- Compte utilisateur administrateur pour accès distant à la base de données +CREATE USER 'adminBibli'@'%' IDENTIFIED BY 'mdpBibli'; +GRANT ALL PRIVILEGES ON bdbibliotheque.* to "adminBibli"@"%"; \ No newline at end of file diff --git a/controleur/afficherLivres.php b/controleur/afficherLivres.php new file mode 100644 index 0000000..ef22c8f --- /dev/null +++ b/controleur/afficherLivres.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/controleur/ajouterCategorie.php b/controleur/ajouterCategorie.php new file mode 100644 index 0000000..9ae77c1 --- /dev/null +++ b/controleur/ajouterCategorie.php @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/controleur/ajouterLivre.php b/controleur/ajouterLivre.php new file mode 100644 index 0000000..01b254e --- /dev/null +++ b/controleur/ajouterLivre.php @@ -0,0 +1,11 @@ + \ No newline at end of file diff --git a/controleur/classes/Database.php b/controleur/classes/Database.php new file mode 100644 index 0000000..e69de29 diff --git a/controleur/classes/Livre.php b/controleur/classes/Livre.php new file mode 100644 index 0000000..c1ca55f --- /dev/null +++ b/controleur/classes/Livre.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/controleur/classes/LivreControleur.php b/controleur/classes/LivreControleur.php new file mode 100644 index 0000000..15c5adc --- /dev/null +++ b/controleur/classes/LivreControleur.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/controleur/pageAccueil.php b/controleur/pageAccueil.php new file mode 100644 index 0000000..11f97d1 --- /dev/null +++ b/controleur/pageAccueil.php @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/donnees/connexion.php b/donnees/connexion.php new file mode 100644 index 0000000..b2dfbf4 --- /dev/null +++ b/donnees/connexion.php @@ -0,0 +1,21 @@ +getMessage()); +} + +?> \ No newline at end of file diff --git a/index.php b/index.php new file mode 100644 index 0000000..96b0bd0 --- /dev/null +++ b/index.php @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/modele/categories.php b/modele/categories.php new file mode 100644 index 0000000..a9ac504 --- /dev/null +++ b/modele/categories.php @@ -0,0 +1,19 @@ +query("SELECT * FROM categories"); + return $stmt->fetchAll(PDO::FETCH_ASSOC); +} + +// Ajout d'une catégorie +function addCategorie() { + include("../donnees/connexion.php"); + if (!empty($_POST['nom'])) { + $stmt = $db->prepare("INSERT INTO categories (nom) VALUES (?)"); + $stmt->execute([$_POST['nom']]); + } +} + +?> \ No newline at end of file diff --git a/modele/livres.php b/modele/livres.php new file mode 100644 index 0000000..6ec3f8a --- /dev/null +++ b/modele/livres.php @@ -0,0 +1,20 @@ +prepare("INSERT INTO livres (categorie, titre, auteur, annee) VALUES (?, ?, ?, ?)"); + $stmt->execute([$_POST['categorie'], $_POST['titre'], $_POST['auteur'], $_POST['annee']]); + } +} + +// Récupération des livres +function getLivres() { + include("../donnees/connexion.php"); + $stmt = $db->query("SELECT livres.*, categories.nom FROM livres INNER JOIN categories ON categories.id = livres.categorie"); + return $stmt->fetchAll(PDO::FETCH_ASSOC); +} + +?> \ No newline at end of file diff --git a/vue/bibliotheque.php b/vue/bibliotheque.php new file mode 100644 index 0000000..34d822e --- /dev/null +++ b/vue/bibliotheque.php @@ -0,0 +1,6 @@ +

Liste des livres

+ \ No newline at end of file diff --git a/vue/footer.php b/vue/footer.php new file mode 100644 index 0000000..691287b --- /dev/null +++ b/vue/footer.php @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/vue/gestion_categories.php b/vue/gestion_categories.php new file mode 100644 index 0000000..75fd63e --- /dev/null +++ b/vue/gestion_categories.php @@ -0,0 +1,6 @@ +

Gestion des catégories

+ +
+
+ +
\ No newline at end of file diff --git a/vue/gestion_livres.php b/vue/gestion_livres.php new file mode 100644 index 0000000..6c2346f --- /dev/null +++ b/vue/gestion_livres.php @@ -0,0 +1,14 @@ +

Gestion de la bibliothèque

+ +
+ +
+
+
+
+ +
\ No newline at end of file diff --git a/vue/header.php b/vue/header.php new file mode 100644 index 0000000..eaa87cd --- /dev/null +++ b/vue/header.php @@ -0,0 +1,8 @@ + + + + + Bibliothèque + + +

Accueil

\ No newline at end of file diff --git a/vue/navigation.php b/vue/navigation.php new file mode 100644 index 0000000..8285796 --- /dev/null +++ b/vue/navigation.php @@ -0,0 +1,4 @@ + +

Liste des livres

+

Gestion des livres

+

Gestion des catégories

\ No newline at end of file